๋ฌธ์ ์ค๋ช
https://school.programmers.co.kr/learn/courses/30/lessons/132201
๋ค์์ ์ข ํฉ๋ณ์์ ๋ฑ๋ก๋ ํ์์ ๋ณด๋ฅผ ๋ด์ PATIENT ํ ์ด๋ธ์ ๋๋ค. PATIENT ํ ์ด๋ธ์ ๋ค์๊ณผ ๊ฐ์ผ๋ฉฐ PT_NO, PT_NAME, GEND_CD, AGE, TLNO๋ ๊ฐ๊ฐ ํ์๋ฒํธ, ํ์์ด๋ฆ, ์ฑ๋ณ์ฝ๋, ๋์ด, ์ ํ๋ฒํธ๋ฅผ ์๋ฏธํฉ๋๋ค.
Column name | Type | Nullable |
PT_NO | VARCHAR(10) | FALSE |
PT_NAME | VARCHAR(20) | FALSE |
GEND_CD | VARCHAR(1) | FALSE |
AGE | INTEGER | FALSE |
TLNO | VARCHAR(50) | TRUE |
๋ฌธ์
PATIENT ํ ์ด๋ธ์์ 12์ธ ์ดํ์ธ ์ฌ์ํ์์ ํ์์ด๋ฆ, ํ์๋ฒํธ, ์ฑ๋ณ์ฝ๋, ๋์ด, ์ ํ๋ฒํธ๋ฅผ ์กฐํํ๋ SQL๋ฌธ์ ์์ฑํด์ฃผ์ธ์. ์ด๋ ์ ํ๋ฒํธ๊ฐ ์๋ ๊ฒฝ์ฐ, 'NONE'์ผ๋ก ์ถ๋ ฅ์์ผ ์ฃผ์๊ณ ๊ฒฐ๊ณผ๋ ๋์ด๋ฅผ ๊ธฐ์ค์ผ๋ก ๋ด๋ฆผ์ฐจ์ ์ ๋ ฌํ๊ณ , ๋์ด ๊ฐ๋ค๋ฉด ํ์์ด๋ฆ์ ๊ธฐ์ค์ผ๋ก ์ค๋ฆ์ฐจ์ ์ ๋ ฌํด์ฃผ์ธ์.
์์
PATIENT ํ ์ด๋ธ์ด ๋ค์๊ณผ ๊ฐ์ ๋
PT_NO | PT_NAME | GEND_CD | AGE | TLNO |
PT22000003 | ๋ธ๋ผ์ด | M | 18 | 01031246641 |
PT22000004 | ํฌ๋กฑ | M | 7 | NULL |
PT22000006 | ๋ฝ๋ฝ | W | 8 | NULL |
PT22000009 | ํ๋ | W | 12 | 01032323117 |
PT22000012 | ๋ฟก๋ฟก์ด | M | 5 | NULL |
๋ด๊ฐ ์์ฑํ ์ฝ๋
SELECT PT_NAME, PT_NO, GEND_CD, AGE, IFNULL(TLNO, 'NONE') AS TLNO
FROM PATIENT
WHERE AGE <= 12 AND GEND_CD = 'W'
ORDER BY AGE DESC, PT_NAME ASC;
์ฝ๋ ์ค๋ช
- SELECT PT_NAME, PT_NO, GEND_CD, AGE, IFNULL(TLNO, 'NONE') AS TLNO : ์ ๋ต ๋ฐ์ดํฐ๋ฅผ ์ถ๋ ฅํ๊ธฐ ์ํด ํ์ํ ์ปฌ๋ผ๋ค์ ์ ํํ๋ค.
- IFNULL(TLNO, 'NONE') AS TLNO : TLNO ์ปฌ๋ผ์์ NULL ๊ฐ์ด ์กด์ฌํ๋ค๋ฉด 'NONE'์ผ๋ก ๋ณํํด์ค๋ค. AS TLNO๋ฅผ ํ์ง ์์ผ๋ฉด ์ถ๋ ฅ๋๋ ์ปฌ๋ผ๋ช ์ด IFNULL(TLNO, 'NONE')๋ก ๋์ค๊ฒ ๋๋ค.
- FROM PATIENT : PATIENT ํ ์ด๋ธ์์ ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ ธ์จ๋ค.
- WHERE AGE <= 12 AND GEND_CD = 'W' : ๋์ด๊ฐ 12์ด ์ด์์ด๊ณ ์ฑ๋ณ์ด ์ฌ์์ธ ๋ฐ์ดํฐ๋ง ๊ฐ์ ธ์ฌ ์ ์๋๋ก ์ค์ ํ๋ค.
- ORDER BY AGE DESC, PT_NAME ASC : AGE ์ปฌ๋ผ์ ๊ธฐ์ค์ผ๋ก ๋ด๋ฆผ์ฐจ์ ์ ๋ ฌํ๊ณ , AGE ์ปฌ๋ผ ๊ฐ์ด ๋์ผํ๋ค๋ฉด PT_NAME ์ปฌ๋ผ์ ๊ธฐ์ค์ผ๋ก ์ค๋ฆ์ฐจ์ ์ ๋ ฌํ๋ค.
'ํ๋ก๊ทธ๋๋จธ์ค > ์๊ณ ๋ฆฌ์ฆ ํ์ด(SQL)' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
ํ๋ก๊ทธ๋๋จธ์ค_์ค๋ ๊ธฐ๊ฐ ๋ณดํธํ ๋๋ฌผ(1) (0) | 2024.11.18 |
---|---|
ํ๋ก๊ทธ๋๋จธ์ค_์ธ๊ธฐ์๋ ์์ด์คํฌ๋ฆผ (0) | 2024.11.15 |
ํ๋ก๊ทธ๋๋จธ์ค_์ง๋ฃ๊ณผ๋ณ ์ด ์์ฝ ํ์ ์ถ๋ ฅํ๊ธฐ (1) | 2024.11.13 |
ํ๋ก๊ทธ๋๋จธ์ค_์ ์ ์๊ฐ ๊ตฌํ๊ธฐ(1) (0) | 2024.11.12 |
ํ๋ก๊ทธ๋๋จธ์ค_๊ณ ์์ด์ ๊ฐ๋ ๋ช ๋ง๋ฆฌ ์์๊น (0) | 2024.11.11 |