Oracle SQL 쿼리에서 선행 0을 추가하는 방법은 무엇입니까?
COUNT() 함수를 사용하여 쿼리에서 removal_count라는 열을 검색하고 있습니다.결과적으로 removal_count의 데이터 유형은 BIGDECIMAL입니다.저는 숫자를 다섯 자리로 바꾸고 싶습니다.따라서 값이 5자리 미만이면 선행 0으로 표시해야 합니다.
예1) 제거 횟수가 540인 경우 00540을 표시합니다.
제거 카운트가 60이면 00060을 표시합니다.
제거 카운트가 정수/문자열 값이면 Java 식을 사용하여 선행 0을 추가할 수 있습니다.
--if removal_count is integer--
String.format("%05d",removal_count)
--if removal_count is string--
("00000"+removal_count).subString(removal_count.length())
주어진 java 표현식을 사용할 수 있도록 removal_count를 문자열 또는 정수(큰 소수점부터)로 변환할 수 있습니까?아니면 쿼리 자체에 선행 0을 추가할 수 있는 방법이 있습니까?
두 가지 방법으로 할 수 있습니다.
방법 1
LPAD 사용.
예를들면,
SQL> WITH DATA(num) AS(
2 SELECT 540 FROM dual UNION ALL
3 SELECT 60 FROM dual UNION ALL
4 SELECT 2 FROM dual
5 )
6 SELECT num, lpad(num, 5, '0') num_pad FROM DATA;
NUM NUM_P
---------- -----
540 00540
60 00060
2 00002
SQL>
WITH 절은 데모를 위한 샘플 데이터만 빌드하는 것이며, 실제 쿼리에서는 다음을 수행합니다.
lpad(removal_count, 5, '0')
숫자는 선행 0을 가질 수 없습니다.위 쿼리의 출력은 숫자가 아닌 문자열입니다.
방법 2
TO_CHAR 및 형식 모델 사용:
SQL> WITH DATA(num) AS(
2 SELECT 540 FROM dual UNION ALL
3 SELECT 60 FROM dual UNION ALL
4 SELECT 2 FROM dual
5 )
6 SELECT num, to_char(num, '00000') num_pad FROM DATA;
NUM NUM_PA
---------- ------
540 00540
60 00060
2 00002
SQL>
업데이트 : 마이너스 기호에 사용되는 추가 선행 공간을 피하려면 의 FM을 사용합니다.TO_CHAR
형식:
FM 불포함:
SELECT TO_CHAR(1, '00000') num_pad,
LENGTH(TO_CHAR(1, '00000')) tot_len
FROM dual;
NUM_PAD TOT_LEN
------- ----------
00001 6
FM 포함:
SELECT TO_CHAR(1, 'FM00000') num_pad,
LENGTH(TO_CHAR(1, 'FM00000')) tot_len
FROM dual;
NUM_PAD TOT_LEN
------- ----------
00001 5
사용LPAD
pl/sql 함수 http://www.techonthenet.com/oracle/functions/lpad.php .
removal_count = 540
LPAD(TO_CHAR(removal_count), 5, '0');
Result: '00540'
sqlplus에서 col 형식을 사용할 수 있습니다.
SQL> 듀얼에서 540aa, 540bb 선택;
AA BB
540 540
SQL > colb 형식 00000
SQL > /
AA BB
540 00540
SQL>
언급URL : https://stackoverflow.com/questions/31693521/how-to-add-leading-zero-in-a-number-in-oracle-sql-query
'programing' 카테고리의 다른 글
Spring Boot 2.1 - Spring Security 자동 구성 없이 @WebMvcTest (0) | 2023.07.02 |
---|---|
GraphQL 스키마에서 맵 개체를 정의하는 가장 좋은 방법은 무엇입니까? (0) | 2023.07.02 |
mongodb 문서의 ID 유형으로 String을 사용할 수 있습니까? (0) | 2023.07.02 |
전자: jQuery가 정의되지 않았습니다. (0) | 2023.07.02 |
git-diff의 출력에서 공백 색상 지정 (0) | 2023.07.02 |