[sql] postgreSQL에서 왼쪽으로 0 채우기
저는 PostgreSQL을 처음 접했고 SQL Server에서 왼쪽에 0으로 숫자를 채우는 방법을 알고 있지만 PostgreSQL에서 이것을 파악하기 위해 고군분투하고 있습니다.
최대 자릿수가 3이고 최소값이 1 인 숫자 열이 있습니다. 한 자리이면 왼쪽에 두 개의 0이 있고 2 자리이면 1이 있습니다 (예 : 001, 058, 123).
SQL Server에서는 다음을 사용할 수 있습니다.
RIGHT('000' + cast([Column1] as varchar(3)), 3) as [Column2]
PostgreSQL에는 존재하지 않습니다. 어떤 도움을 주시면 감사하겠습니다.
답변
rpad
및 lpad
함수를 사용하여 각각 오른쪽 또는 왼쪽으로 숫자를 채울 수 있습니다. 이것은 숫자에서 직접 작동하지 않으므로 사용 ::char
하거나 ::text
캐스트해야합니다.
SELECT RPAD(numcol::text, 3, '0'), -- Zero-pads to the right up to the length of 3
LPAD(numcol::text, 3, '0'), -- Zero-pads to the left up to the length of 3
FROM my_table
답변
이 to_char()
기능은 숫자 형식을 지정하는 데 있습니다.
select to_char(column_1, 'fm000') as column_2
from some_table;
fm
접두사 ( “채우기 모드”) 결과 VARCHAR에서 선행 공백을 방지 할 수 있습니다. 은 000
단순히 당신이 갖고 싶어 자리의 수를 정의합니다.
psql (9.3.5) 도움말을 보려면 "help"를 입력하십시오. postgres => with sample_numbers (nr) as ( postgres (> 값 (1), (11), (100) postgres (>) postgres-> to_char (nr, 'fm000') 선택 sample_numbers의 postgres->; to_char --------- 001 011 100 (3 열) postgres =>
형식 그림에 대한 자세한 내용은 http://www.postgresql.org/docs/current/static/functions-formatting.html 설명서를 참조하십시오
.