๋ฌธ์ œ ์„ค๋ช…

ANIMAL_INS ํ…Œ์ด๋ธ”์€ ๋™๋ฌผ ๋ณดํ˜ธ์†Œ์— ๋“ค์–ด์˜จ ๋™๋ฌผ์˜ ์ •๋ณด๋ฅผ ๋‹ด์€ ํ…Œ์ด๋ธ”์ž…๋‹ˆ๋‹ค. ANIMAL_INS ํ…Œ์ด๋ธ” ๊ตฌ์กฐ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์œผ๋ฉฐ, ANIMAL_ID, ANIMAL_TYPE, DATETIME, INTAKE_CONDITION, NAME, SEX_UPON_INTAKE๋Š” ๊ฐ๊ฐ ๋™๋ฌผ์˜ ์•„์ด๋””, ์ƒ๋ฌผ ์ข…, ๋ณดํ˜ธ ์‹œ์ž‘์ผ, ๋ณดํ˜ธ ์‹œ์ž‘ ์‹œ ์ƒํƒœ, ์ด๋ฆ„, ์„ฑ๋ณ„ ๋ฐ ์ค‘์„ฑํ™” ์—ฌ๋ถ€๋ฅผ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค.

NAME TYPE NULLABLE
ANIMAL_ID VARCHAR(N) FALSE
ANIMAL_TYPE VARCHAR(N) FALSE
DATETIME DATETIME FALSE
INTAKE_CONDITION VARCHAR(N) FALSE
NAME VARCHAR(N) TRUE
SEX_UPON_INTAKE VARCHAR(N) FALSE

์ž…์–‘ ๊ฒŒ์‹œํŒ์— ๋™๋ฌผ ์ •๋ณด๋ฅผ ๊ฒŒ์‹œํ•˜๋ ค ํ•ฉ๋‹ˆ๋‹ค. ๋™๋ฌผ์˜ ์ƒ๋ฌผ ์ข…, ์ด๋ฆ„, ์„ฑ๋ณ„ ๋ฐ ์ค‘์„ฑํ™” ์—ฌ๋ถ€๋ฅผ ์•„์ด๋”” ์ˆœ์œผ๋กœ ์กฐํšŒํ•˜๋Š” SQL๋ฌธ์„ ์ž‘์„ฑํ•ด์ฃผ์„ธ์š”. ์ด๋•Œ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์„ ๋ชจ๋ฅด๋Š” ์‚ฌ๋žŒ๋“ค์€ NULL์ด๋ผ๋Š” ๊ธฐํ˜ธ๋ฅผ ๋ชจ๋ฅด๊ธฐ ๋•Œ๋ฌธ์—, ์ด๋ฆ„์ด ์—†๋Š” ๋™๋ฌผ์˜ ์ด๋ฆ„์€ โ€œNo nameโ€์œผ๋กœ ํ‘œ์‹œํ•ด ์ฃผ์„ธ์š”.

์˜ˆ์‹œ

์˜ˆ๋ฅผ ๋“ค์–ด ANIMAL_INS ํ…Œ์ด๋ธ”์ด ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค๋ฉด

ANIMAL_ID ANIMAL_TYPE DATETIME INTAKE_CONDITION NAME SEX_UPON_INTAKE
A350276 Cat 2017-08-13 13:50:00 Normal Jewel Spayed Female
A350375 Cat 2017-03-06 15:01:00 Normal Meo Neutered Male
A368930 Dog 2014-06-08 13:20:00 Normal NULL Spayed Female

๋งˆ์ง€๋ง‰ ์ค„์˜ ๊ฐœ๋Š” ์ด๋ฆ„์ด ์—†๊ธฐ ๋•Œ๋ฌธ์—, ์ด ๊ฐœ์˜ ์ด๋ฆ„์€ โ€œNo nameโ€์œผ๋กœ ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ SQL๋ฌธ์„ ์‹คํ–‰ํ•˜๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๋‚˜์™€์•ผ ํ•ฉ๋‹ˆ๋‹ค.

ANIMAL_TYPE NAME SEX_UPON_INTAKE
Cat Jewel Spayed Female
Cat Meo Neutered Male
Dog No name Spayed Female

โ€ป ์ปฌ๋Ÿผ ์ด๋ฆ„์€ ์ผ์น˜ํ•˜์ง€ ์•Š์•„๋„ ๋ฉ๋‹ˆ๋‹ค.

๋ฌธ์ œ ์ •๋‹ต

-- ์ฝ”๋“œ๋ฅผ ์ž…๋ ฅํ•˜์„ธ์š”
SELECT ANIMAL_TYPE, 
CASE 
	WHEN NAME IS NULL THEN "No name" 
    ELSE NAME 
END AS "NAME",
SEX_UPON_INTAKE
FROM ANIMAL_INS
ORDER BY ANIMAL_ID ASC;

๋ฌธ์ œ ํ’€์ด

SELECT ๊ตฌ

  • SELECT๋Š” ํ…Œ์ด๋ธ”์—์„œ ํ•˜๋‚˜ ์ด์ƒ์˜ ์—ด(์ปฌ๋Ÿผ/ํ•„๋“œ)๋ฅผ ๊ฐ€์ ธ์˜ค๋Š” ํ‚ค์›Œ๋“œ์ž…๋‹ˆ๋‹ค.
  • ๋™๋ฌผ์˜ ์ƒ๋ฌผ ์ข…, ์ด๋ฆ„, ์„ฑ๋ณ„ ๋ฐ ์ค‘์„ฑํ™” ์—ฌ๋ถ€๋ฅผ ์กฐํšŒํ•˜๊ธฐ ์œ„ํ•ด ANIMAL_TYPE, NAME, SEX_UPON_INTAKE์„ ์ง€์ •ํ•˜์˜€์Šต๋‹ˆ๋‹ค.
  • ์ด๋ฆ„์ด ์—†๋Š” ๋™๋ฌผ์˜ ์ด๋ฆ„์€ โ€œNo nameโ€์œผ๋กœ ํ‘œ์‹œํ•˜๊ธฐ ์œ„ํ•ด CASE ๋ฌธ์„ ์ด์šฉํ•˜์—ฌ NAME ์—ด์ด NULL์ด๋ฉด โ€œNo nameโ€์œผ๋กœ ๋ณ€๊ฒฝํ•˜๊ณ  ๊ทธ ์ด์™ธ์—๋Š” NAME์ด ๊ทธ๋Œ€๋กœ ๋‚˜์˜ค๋„๋ก ํ•˜์˜€์Šต๋‹ˆ๋‹ค.

FROM ๊ตฌ

  • FROM๋Š” ํ…Œ์ด๋ธ”์„ ๊ฐ€์ ธ์˜ค๋Š” ํ‚ค์›Œ๋“œ์ž…๋‹ˆ๋‹ค.
  • ๋ฌธ์ œ์—์„œ ์ฃผ์–ด์ง„ ANIMAL_INS ํ…Œ์ด๋ธ”์„ ์ง€์ •ํ•ด ๊ฐ€์ ธ์˜ต๋‹ˆ๋‹ค.

ORDER BY ๊ตฌ

  • ๋ฌธ์ œ์—์„œ ์•„์ด๋”” ์ˆœ์œผ๋กœ ์ •๋ ฌ ์กฐ๊ฑด์ด ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ORDER BY ๋’ค์— ANIMAL_ID ASC์„ ์ง€์ •ํ•˜์—ฌ ์˜ค๋ฆ„์ฐจ์ˆœ์œผ๋กœ ์ •๋ ฌํ•˜์˜€์Šต๋‹ˆ๋‹ค.

Reference

Programmers - SQL ๊ณ ๋“์  Kit (NULL ์ฒ˜๋ฆฌํ•˜๊ธฐ)