728x90
SQL Server에서 숫자 앞에 "0"을 채워서 일정한 길이의 문자열을 만들기 위해서는 FORMAT, RIGHT, REPLICATE 함수를 사용하면 된다. SQL Server에는 오라클의 LPAD 함수는 사용할 수 없으므로 아래의 예제를 참고하면 비슷한 효과를 낼 수 있다.
■ FORMAT 함수 사용 (방법1)
SELECT FORMAT(1, '00000') AS result1
, FORMAT(12, '00000') AS result2
, FORMAT(123, '00000') AS result3
FORMAT 함수는 SQL Server 2012 이상에서 사용할 수 있으므로 이하의 버전에서는 아래의 RIGHT, REPLICATE 함수를 사용해야 한다.
SELECT FORMAT(1, 'D5') AS result1
, FORMAT(12, 'D5') AS result2
, FORMAT(123, 'D5') AS result3
"00000" 대신 D + 반복 횟수를 입력해도 동일한 결과를 얻을 수 있다.
■ RIGHT 함수 사용 (방법2)
SELECT RIGHT('00000' + CAST(1 AS VARCHAR), 5) AS result1
, RIGHT('00000' + CAST(12 AS VARCHAR), 5) AS result2
, RIGHT('00000' + CAST(123 AS VARCHAR), 5) AS result3
RIGHT("채울 값" + CAST("수치 값" AS VARCHAR), "문자열 길이")
조금 복잡해 보이지만 일반적인 프로그래밍에서 많이 사용하는 방법이다.
■ REPLICATE 함수 사용 (방법3)
SELECT REPLICATE('0', 5 - LEN(1)) + CAST(1 AS VARCHAR) AS result1
, REPLICATE('0', 5 - LEN(12)) + CAST(12 AS VARCHAR) AS result2
, REPLICATE('0', 5 - LEN(123)) + CAST(123 AS VARCHAR) AS result3
REPLICATE("채울 값", "반복 횟수" - LEN("수치 값")) + CAST("수치 값" AS VARCHAR)
REPLICATE 함수의 기능을 아주 잘 활용한 방법이지만 쿼리문이 많이 복잡해 보인다.
CAST(123 AS VARCHAR) 함수 대신 CONVERT(VARCHAR, 123) 함수를 사용할 수 있다.
'DataBase > MSSQL' 카테고리의 다른 글
[MSSQL] 시작일자 종료일자 사이 모든 일자를 조회하는 방법 (0) | 2022.11.14 |
---|---|
[MSSQL] 공백 제거 방법 (TRIM, LTRIM, RTRIM) (0) | 2022.11.14 |
[MSSQL] 년, 월, 일 추출 방법 (YEAR, MONTH, DAY) (0) | 2022.11.14 |
[MSSQL] DELETE 문 사용법 3가지 (데이터 삭제) (0) | 2022.11.07 |
[MSSQL] UPDATE 문 사용법 3가지 (데이터 수정) (0) | 2022.11.04 |
댓글