필드 값 중 숫자의 자릿수 변경을 해야 될 경우 사용하는 쿼리에 대해서 알아보겠습니다.
예를 들어 전화번호의 자릿수는 010-0000-0000으로 총 11자리 숫자입니다. 하지만 TABLE을 새로 만들거나 엑셀을 import 할 경우 nvarchar가 아닌 float이나 int로 받아들일 경우 숫자의 자릿수는 10자리가 되어버립니다.
맨 좌측의 0이 없어지고 1부터 시작하게 되면서 자릿수는 11자리가 아닌 10자리가 되면서 전화번호를 이용하여 다른 TABLE과 JOIN 할 때 정상적으로 되지 않아 버립니다.
숫자의 자릿수 변경 방법
숫자의 맨 좌측의 0을 추가하여 숫자의 자릿수 변경 방법을 알려드리겠습니다.
right('0000'+convert(nvarchar, 필드명), 숫자)
[쿼리 설명]
- right(필드명, 숫자) : 지정된 필드 값의 맨 오른쪽부터 지정한 숫자까지만 반환합니다. 3을 넣으면 오른쪽부터 3번째까지 문자열 반환
- '0000' : 숫자의 맨 왼쪽에 0을 넣은 숫자를 만들기 위해 원하는 만큼의 0을 넣습니다. right함수를 통해 오른쪽부터 잘라내면 되니까 몇 개를 넣더라도 상관없습니다.
- convert(nvarchar, 필드명) : 기존 필드의 형식을 nvarchar형식으로 변환합니다.
[사용 예시]
행정구역을 숫자로 표기하는 TABLE이 하나 있습니다. 그중에 [시군구코드] 필드가 자릿수가 2개인 레코드와 3개인 레코드가 섞여 있습니다.
- 서울특별시 강북구의 시군구코드는 90으로 2자리
- 서울특별시 도봉구의 시군구코드는 100으로 3자리
시군구코드를 일괄적으로 2자리에서 3자리 숫자로 변경(90 > 090)하고 싶은 경우 쿼리는 다음과 같습니다.
090으로 변경할 경우(3자리)
right('00'+convert(nvarchar,[시군구코드]),3)
0090으로 변경할 경우(4자리)
right('00'+convert(nvarchar,[시군구코드]),4)
[쿼리 입력 및 결과]
- 우선 자릿수 변경할 필드를 하나 추가하였습니다. 필드 추가 방법은 이전 작성글을 참조해주시기 바랍니다.
MSSQL 필드 추가, 필드 수정, 필드 이름변경, 필드 삭제 쿼리 방법
MSSQL 필드 추가, 필드 수정, 필드 이름변경, 필드 삭제 쿼리 방법
MSSQL TABLE에서 새로운 필드를 추가해야 하는 경우가 많습니다. 엑셀에서는 그냥 열을 하나 추가하면 되지만 MSSQL에서는 명령어를 사용하여 쿼리로 필드를 추가해야 합니다. 또 필드의 이름을 변
elonbro.tistory.com
- 그 후 update 명령어를 통해 추가한 필드에 자리수 변경 값을 입력하였습니다.
결과는 보는 바와 같이 [시군구코드]필드의 값이 전부 3자리 숫자로 변경되었습니다.
이렇게 right 명령어를 사용하여 자리수 변경이 가능하니 많이 활용하시면 되겠습니다.
'OFFICE TOOL > MSSQL' 카테고리의 다른 글
MSSQL JOIN 종류와 사용방법(엑셀 VLOOKUP 기능의 JOIN) (0) | 2022.10.21 |
---|---|
MSSQL 조건에 따라 데이터를 입력하는 UPDATE 사용 방법 (1) | 2022.10.18 |
MSSQL 중복건수나 엑셀 피봇형식의 그룹별 통계 COUNT와 HAVING 절 사용방법 (0) | 2022.10.18 |
MSSQL 필드 추가, 필드 수정, 필드 이름변경, 필드 삭제 쿼리 방법 (0) | 2022.10.06 |
댓글