elevne's Study Note

SQL 몇 가지 정리해두기! 본문

DB/Oracle

SQL 몇 가지 정리해두기!

elevne 2022. 10. 12. 19:10

자주 사용하는 Oracle 문법 중 가끔 헷갈리는 것들을 기록해두려고 함.

 

Table에서 특정 Column 선택해서 보기

SELECT COL1, COL2 FROM TABLE1;
(전체보기는 SELECT * FROM TABLE1;)

 

 

선택 열 기준 중복값 제외한 데이터 조회

SELECT DISTINCT COL1 FROM TABLE1;

 

 

언더바( _ ) Wildcard

SELECT * FROM TABLE1 WHERE COL1 LIKE ‘a_b_c’; (‘_’에는 무슨 값이든 가능)

 

 

Charlist Wildcard (charlist안에 들어있는 a~e 알파벳으로 시작하는 데이터를 조회하는 쿼리)

SELECT * FROM TABLE1 WHERE COL1 LIKE ‘[a-e]%'; 

 

 

Join (각 Table의 COL1값이 동일한 것들을 기준으로 Join하는 것)

SELECT TABLE1.COL1, TABLE2.COL4
FROM TABLE1 INNER JOIN TABLE2 ON TABLE1.COL1 = TABLE2.COL1

 

 

DATE 비교하기(24시간 기준(Oracle))
Date 형식이 yyyy-MM-dd hh:mm:ss 형식으로 Table에 들어가있을 때

SELECT * FROM TABLE1 WHERE TO_CHAR(COL1, ‘yyyy-MM-dd HH24’) >= ‘2022-10-12 18’;

 

 

CONCAT(문자열 합치기(Oracle))

‘문자1’ || ‘문자2’  혹은
CONCAT(‘문자1’, ‘문자2’)

 

 

LPAD (지정한 길이만큼 왼쪽부터 특정문자로 채우는 함수, 특정문자를 지정하지 않으면 공백)

LPAD(‘문자’, 5) => ‘   문자’
LPAD(‘문자’, 5, ‘a’) => ‘aaa문자’

 RPAD는 LPAD와 반대로 오른쪽부터 특정문자로 채우는 함수

 

 

NVL(해당 값이 NULL이면 특정값으로 출력하는 함수)

NVL(NULL, 1) => 결과: 1

 

 

NVL2(해당 값이 NULL이 아니면 특정값1, NULL이면 특정값2로 출력하는 함수)

NVL2(NULL, 1, 2) => 결과: 2
NVL2(‘null아님’, 1, 2) => 결과: 1

 

 

DECODE => 형식 DECODE(컬럼, 조건1, 결과1, 조건2, 결과2, …., 기타)

DECODE(NULL값, NULL, ‘null임’, ‘null아님’) => 결과: ‘null임’
DECODE(NULL아닌값, NULL, ‘null임’, ‘null아님’) => 결과: ‘null아님’    

 

 

SUBSTR => 형식 SUBSTR(문자열, 시작위치, 길이) => 해당 조건에 맞춰서 문자열 자르는 함수 / 길이를 지정하지 않으면 시작위치부터 끝까지 자름

SUBSTR(‘abcde’, 3, 4) => 결과: ‘cd’
SUBSTR(‘abcde’, -4, 3) => 결과: ‘bcd’ ( -값으로 뒤에서부터 자를 위치 지정하기 가능)

 

 

OVER (ORDER BY, GROUP BY 서브쿼리를 개선함)

COUNT(*)OVER(PARTITIAN BY COL1) => COL1의 Group별로 나누어 카운트!
COUNT(*)OVER(ORDER BY COL1) => RowNumber로 사용 가능..(?)

 

 

TRIM (공백제거 함수)

TRIM(‘   문자   ‘) => 결과: ‘문자’

 

 

LTRIM, RTRIM은 문자기준 각각 왼쪽, 오른쪽 공백 제거 + 반복적 문자 제거

LTRIM(‘   문자   ’) => 결과: ‘문자   ’
RTRIM(‘  12000’) => 결과: ‘  12’

 

출처:

https://gent.tistory.com/

'DB > Oracle' 카테고리의 다른 글

MERGE (Oracle)  (0) 2023.01.19
ORACLE GROUP BY, RANK, ROW_NUMBER  (0) 2022.12.24