코딩테스트/SQL

[SQL] 서브 쿼리, CASE~WHEN, JOIN ON

박소민 2024. 3. 23. 00:35
서브 쿼리
SELECT ANIMAL_ID, ANIMAL_NAME
FROM ANIMAL_OUTS
WHERE ANIMAL_ID NOT IN (
                        SELECT ANIMAL_ID
                        FROM ANIMAL_INS
                       )

 

 

CASE~WHEN
SELECT ANIMAL_ID, NAME,
    CASE WHEN SEX_UPON_INTAKE LIKE 'N%' OR SEX_UPON_INTAKE LIKE 'S%' # N이나 S로 시작하면
        THEN 'O'
        ELSE 'X' END AS 중성화 #컬럼이름은 중성화
FROM ANIMAL_INS

 

 

JOIN ON
  • FROM ANIMAL_INS
    • 기준이다는 것은 ANIMAL_INS의 행은 다 살아있다는 것! 
    • 만약 데이터가 INS에는 없고 OUTS에는 있는 경우여도 NULL로 ANIMAL_INS의 행을 살려줌
  • LEFT JOIN 에서 사용한 테이블 WHERE 에서 사용 가능
SELECT I.ANIMAL_ID, I.NAME
FROM ANIMAL_INS I
LEFT JOIN ANIMAL_OUTS O ON O.ANIMAL_ID = I.ANIMAL_ID
WHERE O.DATETIME < I.DATETIME
ORDER BY I.DATETIME