Step it up now

let it be 예제 본문

수업/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이나 빈 문자열이 반환될 것

 

📌

결과  -   DECODE에서 조건을 걸지 않을 경우 그 나머지는 null로 치환됨

 

 

 

  • 2단계  null 대신 0 출력하기 
SELECT 
       DECODE(MOD(seq_vc,2),1, words_vc,'0') eng_words
 FROM T_LETITBE

 

📌

2단계 결과

 

 

  • 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;

 

📌

 

 

'수업 > SQL' 카테고리의 다른 글

procedure 출력 확인  (0) 2023.11.27
3명씩 줄 세우기  (0) 2023.11.26
ER-WIN/ DML  (0) 2023.11.26
순위 매기기 (rank, rownum)  (1) 2023.11.24
DECODE(A, B, X, Y), 정렬(오름차순 내림차순)/ 강의 시간 예제  (0) 2023.11.21