티스토리 뷰
이 글은 17만 건의 데이터 추출 요청을 받았다가 데이터의 다양함에 와장창 깨지는 EXCEL 파일을 보고 Sql 수정 노가다하다 열 받아서 기록하는 포스트입니다,,,
DBMS | MSSQL |
Tool | Microsoft SQL Server Management Studio (SSMS) |
SQL Server Management Studio에서 데이터 조회한 결과에서 다음과 같은 처리를 할 때
1. 복사(Y) or 복사(머리글 포함)
2. 다른 이름으로 결과 저장(V)... > CSV(쉼표로 구분) (*.csv)
1번에서 복사한 결과를 Excel에 붙여 넣기 하거나 2번에서 csv파일로 직접 저장시키는 경우 모두 동일하게 컬럼 내에 다음과 같은 문자열이 포함되면 Excel에서 행과 열이 무자비하게 깨지게 됩니다.
Char(ASCII CODE) | Symbol | Description (En) | Description (Ko) |
Char(9) | HT | Horizontal Tab (\t) | 탭 |
Char(10) | LF | Line Feed (\n) | 줄바꿈 |
Char(13) | CR | Carriage Return (\r) | 맨 앞으로 이동 |
Char(34) | " | Double quote | 쌍따옴표, 큰따옴표 |
Char(44) | , | Comma | 콤마 |
17 만행에 33 열인데 위에 문자열이 포함되면 행바꿈, 열 바꿈 등이 일어나 엑셀이 깨진단 걸 깨닫고 아예 REPLACE처리 해버리기로 결심! REPLACE 함수는 다음과 같이 간단한 형식으로 사용 가능합니다.
REPLACE([컬럼명], [대상 문자열], [대체할 문자열])
그래서 예를 들어 탭, 줄 바꿈, 큰따옴표, 콤마를 빈칸으로 치환하고자 한다 치면
REPLACE([컬럼명], Char(9), ' ')
REPLACE(REPLACE([컬럼명], Char(10), ' '), CHAR(13), ' ')
REPLACE([컬럼명], Char(34), ' ')
REPLACE([컬럼명], Char(44), ' ')
위와 같이 사용하면 되는데 아스키코드 표현 대신 직접 문자열을 사용해도 무방합니다. (예) Char(44) → ',')
물론 다음과 같이 중첩해서 사용할 수도 있습니다. 중첩문은 DB에 부하가 가지 않게 데이터량에 맞춰 사용하세요.
REPLACE(REPLACE(REPLACE(REPLACE(REPLACE([컬럼명], Char(9), ' '), CHAR(10), ' '), Char(13), ' '), Char(34), ' '), Char(44), ' ')
위의 문자열 대신 다른 문자열을 치환하고 싶은 경우는 ASCII CODE 사이트를 참고하세요.
'프로그래밍' 카테고리의 다른 글
[VSCode] Visual Studio Code에서 전체 검색이 안 될 때 (열린 파일에서만 검색될 때) (0) | 2024.01.09 |
---|
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- sheba
- 레고 미피
- 레고
- 코코의하루
- 전체검색안됨
- Lego Minifigures
- Ardium
- 오블완
- 다이어리꾸미기
- 레고 공홈
- 사지마세용입양하세요
- 티스토리챌린지
- 삽질주의
- 레고 미니피규어
- 윈도우키동작안함
- 리무버블스티커
- 끝까지책임져주세요
- 코코의일기
- 레고 폴리백
- 윈도우키잠금
- 토끼사장
- 열린파일에서만검색됨
- 레고 프로모션
- 혦복한묘코코
- 아르디움
- 시작메뉴잠금
- 브릭링크
- 턱시도고양이
- 사지마세요입양하세요
- 레고 공홈 프로모션
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 | 31 |
글 보관함