수업/SQL
let it be 예제
케잉
2023. 11. 21. 20:33
1)영어 가사만 나오게 하기 - 홀수만 출력하기 - MOD(seq_vc,2)
- 1단계 null 출력
SELECT
DECODE(MOD(seq_vc,2),1, words_vc) eng_words
FROM T_LETITBE
- MOD(seq_vc, 2): seq_vc를 2로 나눈 나머지를 계산
- (seq_vc,2),0 : - 2로 나눴을때 나머지 0 = 짝수
- DECODE(MOD(seq_vc, 2), 1, words_vc): 만약 나머지가 1이라면, words_vc의 값을 반환한다.
만약 나머지가 0이면, DECODE 함수에 해당하는 값이 없으므로 보통 NULL이나 빈 문자열이 반환될 것
📌
- 2단계 null 대신 0 출력하기
SELECT
DECODE(MOD(seq_vc,2),1, words_vc,'0') eng_words
FROM T_LETITBE
📌
- 3단계 영어 가사만 출력
SELECT
DECODE(MOD(seq_vc,2),1, words_vc) eng_words
FROM t_letitbe
WHERE MOD(seq_vc,2) = 1;
📌
- 4단계 열에 번호 매기기
SELECT
*
FROM (
SELECT
seq_vc
,decode(mod(seq_vc,2),1, words_vc) A
FROM t_letitbe
UNION ALL
SELECT
seq_vc
,decode(mod(seq_vc,2),0, words_vc) A
FROM t_letitbe
)
📌
2) 한글 가사만 나오게 하기
SELECT
DECODE(MOD(seq_vc,2), 0, words_vc) han_words
FROM t_letitbe
WHERE MOD(seq_vc,2) = 0;
📌
3)영문가사와 한글 가사 모두 나오게 하기
SELECT
seq_vc
, min(A) as "all_word"
FROM (
SELECT
seq_vc
,decode(mod(seq_vc,2),1, words_vc) A
FROM t_letitbe
UNION ALL
SELECT
seq_vc
,decode(mod(seq_vc,2),0, words_vc) A
FROM t_letitbe
)
GROUP BY seq_vc
ORDER BY TO_NUMBER(seq_vc) asc;
📌