[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค] SQL ์ž…์–‘ ์‹œ๊ฐ ๊ตฌํ•˜๊ธฐ(2) - Oracle

2020. 6. 7. 21:21ใ†ETC/Algorithm

๐Ÿ†€ ๋ฌธ์ œ 

ANIMAL_OUTS ํ…Œ์ด๋ธ”์€ ๋™๋ฌผ ๋ณดํ˜ธ์†Œ์—์„œ ์ž…์–‘ ๋ณด๋‚ธ ๋™๋ฌผ์˜ ์ •๋ณด๋ฅผ ๋‹ด์€ ํ…Œ์ด๋ธ”์ž…๋‹ˆ๋‹ค. ANIMAL_OUTS ํ…Œ์ด๋ธ” ๊ตฌ์กฐ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์œผ๋ฉฐ, ANIMAL_ID, ANIMAL_TYPE, DATETIME, NAME, SEX_UPON_OUTCOME๋Š” ๊ฐ๊ฐ ๋™๋ฌผ์˜ ์•„์ด๋””, ์ƒ๋ฌผ ์ข…, ์ž…์–‘์ผ, ์ด๋ฆ„, ์„ฑ๋ณ„ ๋ฐ ์ค‘์„ฑํ™” ์—ฌ๋ถ€๋ฅผ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค. ๋ณดํ˜ธ์†Œ์—์„œ๋Š” ๋ช‡ ์‹œ์— ์ž…์–‘์ด ๊ฐ€์žฅ ํ™œ๋ฐœํ•˜๊ฒŒ ์ผ์–ด๋‚˜๋Š”์ง€ ์•Œ์•„๋ณด๋ ค ํ•ฉ๋‹ˆ๋‹ค. 0์‹œ๋ถ€ํ„ฐ 23์‹œ๊นŒ์ง€, ๊ฐ ์‹œ๊ฐ„๋Œ€๋ณ„๋กœ ์ž…์–‘์ด ๋ช‡ ๊ฑด์ด๋‚˜ ๋ฐœ์ƒํ–ˆ๋Š”์ง€ ์กฐํšŒํ•˜๋Š” SQL๋ฌธ์„ ์ž‘์„ฑํ•ด์ฃผ์„ธ์š”. ์ด๋•Œ ๊ฒฐ๊ณผ๋Š” ์‹œ๊ฐ„๋Œ€ ์ˆœ์œผ๋กœ ์ •๋ ฌํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

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

์˜ˆ์‹œ

SQL๋ฌธ์„ ์‹คํ–‰ํ•˜๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๋‚˜์™€์•ผ ํ•ฉ๋‹ˆ๋‹ค.

HOUR COUNT
0 0
1 0
2 0
3 0
4 0
5 0
6 0
7 3
8 1
9 1
10 2
11 13
12 10
13 14
14 9
15 7
16 10
17 12
18 16
19 2
20 0
21 0
22 0
23 0

 

 

 

 

๐Ÿ…ฐ ํ’€์ด

๋ชป ํ’€์–ด์„œ ๋จธ๋ฆฌ๋ฅผ ๋™๋™ ์‹ธ๋งค๋˜ ๋‚˜์—๊ฒŒ ํ•œ ์ค„๊ธฐ ๋น›๊ณผ ๊ฐ™๋˜ ๋ฐ‘์˜ ๋งํฌโœจ(๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค๐Ÿ™)

 

[PROGRAMMER Level-4] ์ž…์–‘ ์‹œ๊ฐ ๊ตฌํ•˜๊ธฐ(2)[Oracle]

๋ฌธ์ œ ์„ค๋ช… ANIMAL_OUTS ํ…Œ์ด๋ธ”์€ ๋™๋ฌผ ๋ณดํ˜ธ์†Œ์—์„œ ์ž…์–‘ ๋ณด๋‚ธ ๋™๋ฌผ์˜ ์ •๋ณด๋ฅผ ๋‹ด์€ ํ…Œ์ด๋ธ”์ž…๋‹ˆ๋‹ค. ANIMAL_OUTS ํ…Œ์ด๋ธ” ๊ตฌ์กฐ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์œผ๋ฉฐ, ANIMAL_ID, ANIMAL_TYPE, DATETIME, NAME, SEX_UPON_OUTCOME๋Š”..

blue-boy.tistory.com

ํ•ด๋‹น ํฌ์ŠคํŒ…์€ ์œ„ ๋งํฌ์— ๋‚˜์˜จ sql๋ฌธ์„ ํ’€์ดํ•˜๋Š” ๊ณผ์ •์— ๋Œ€ํ•œ ํฌ์ŠคํŒ…์ž…๋‹ˆ๋‹ค.

 

SELECT l.hour, nvl(count, 0) AS count

FROM (SELECT TO_CHAR(datetime, 'HH24') AS hour, count(*) AS count 
        FROM animal_outs 
        GROUP BY TO_CHAR(datetime, 'HH24') 
        ORDER BY hour) O, 
        (SELECT LEVEL-1 AS hour FROM dual CONNECT BY LEVEL<=24) L
      
WHERE L.hour = O.hour(+)

ORDER BY L.hour;

์œ„ sql์„ ์‹คํ–‰ํ•˜๋ฉด ๋ฌธ์ œ์˜ ์˜ˆ์‹œ์™€ ๊ฐ™์€ ๊ฒฐ๊ณผ๊ฐ€ ์ถœ๋ ฅ๋ฉ๋‹ˆ๋‹ค.

 

์ด์ œ๋ถ€ํ„ฐ ํ•˜๋‚˜ํ•˜๋‚˜ ๋œฏ์–ด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

 

 

โžก๏ธ  TO_CHAR

SELECT TO_CHAR(datetime, 'HH24') AS hour, count(*) AS count 
FROM animal_outs 
GROUP BY TO_CHAR(datetime, 'HH24') 
ORDER BY hour

์ด๋Š” ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค SQL LEVEL 2์˜ ์ž…์–‘ ์‹œ๊ฐ ๊ตฌํ•˜๊ธฐ ๋ฌธ์ œ๋ฅผ Oracle๋กœ ์ž‘์„ฑํ•œ ํ’€์ด์™€ ๋น„์Šทํ•ฉ๋‹ˆ๋‹ค.

์˜ค๋ผํด์—์„œ ๋‚ ์งœ ํฌ๋งท์˜ ๋ณ€ํ™˜์€ TO_CHARํ•จ์ˆ˜๋ฅผ ์ด์šฉํ•ฉ๋‹ˆ๋‹ค.

์œ„ datetime ์ปฌ๋Ÿผ์˜ ํƒ€์ž…์€ datetime์ž…๋‹ˆ๋‹ค. datetime type์€ DATE, TIMESTAMP, TIMESTAMP WITH LOCAL TIME ZONE ํƒ€์ž…์ž…๋‹ˆ๋‹ค.

 

Oracle์—์„œ SYSDATE๋ฅผ ๊ฐ€์ ธ์˜ค๋Š” ์ฟผ๋ฆฌ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

SELECT SYSDATE FROM DUAL;

์œ„ ์ฟผ๋ฆฌ๋ฅผ ์‹คํ–‰์‹œํ‚ค๋ฉด 2020-06-07 11:04:25๋กœ ๊ฒฐ๊ณผ๊ฐ€ ์ถœ๋ ฅ๋ฉ๋‹ˆ๋‹ค.

ํ•จ์ˆ˜์˜ ๊ธฐ๋ณธํ˜•์€ TO_CHAR(์ˆซ์ž/๋‚ ์งœ ,  FORMAT)์ž…๋‹ˆ๋‹ค. ๋‚ ์งœํ•จ์ˆ˜ SYSDATE๋ฅผ ์ด์šฉํ•˜์—ฌ TO_CHAR์— ๋Œ€ํ•ด ์•Œ์•„๋ด…์‹œ๋‹ค.

SELECT

--๋‚ ์งœ ํฌ๋งท
TO_CHAR(SYSDATE,'YYYYMMDD'),--20200607
TO_CHAR(SYSDATE,'YYYY-MM-DD'),--2020-06-07
TO_CHAR(SYSDATE,'YYYY/MM/DD'),--2020/06/07
TO_CHAR(SYSDATE,'YYYY'),--2020
TO_CHAR(SYSDATE,'YY'),--20
TO_CHAR(SYSDATE,'MM'),--06
TO_CHAR(SYSDATE,'MON'),--JUN
TO_CHAR(SYSDATE,'D'),--1 (์ฃผ์ค‘์˜ ์ผ์„ 1~7๋กœ ํ‘œ์‹œ(์ผ์š”์ผ = 1)
TO_CHAR(SYSDATE,'DD'),--07
TO_CHAR(SYSDATE,'DDD'),--159 (1๋…„๊ธฐ์ค€ ์ผ ์ˆ˜)
TO_CHAR(SYSDATE,'DAY'),--SUNDAY (์š”์ผ ํ‘œ์‹œ)
TO_CHAR(SYSDATE,'DY'), --SUN (์š”์ผ์„ ํ•œ์ž๋ฆฌ๋กœ ํ‘œ์‹œ)
TO_CHAR(SYSDATE,'WW'), -- 23 (์ผ๋…„ ๊ธฐ์ค€ ์ฃผ๋ฅผ 00 ~ 53 ํ˜•ํƒœ๋กœ ํ‘œ์‹œ)
TO_CHAR(SYSDATE,'W'), -- 1 (ํ•œ๋‹ฌ ๊ธฐ์ค€ ๋ช‡๋ฒˆ์งธ ์ฃผ)
TO_CHAR(SYSDATE,'DL'),--Sunday, June 07, 2020

--์‚ฌ๊ฐ„ ํฌ๋งท
TO_CHAR(SYSDATE,'AM'),--AM
TO_CHAR(SYSDATE,'PM'),--AM
TO_CHAR(SYSDATE,'HH'), --11 (์‹œ๊ฐ„์„ 0 ~ 12 ํ˜•ํƒœ๋กœ ํ‘œ์‹œ)
TO_CHAR(SYSDATE,'HH24'), --11 (์‹œ๊ฐ„์„ 0 ~ 24 ํ˜•ํƒœ๋กœ ํ‘œ์‹œ)
TO_CHAR(SYSDATE,'MI'), --15	 (๋ถ„์„ 00 ~ 59 ํ˜•ํƒœ๋กœ ํ‘œ์‹œ)
TO_CHAR(SYSDATE,'SS'), --51	 (์ดˆ์„ 01 ~ 59 ํ˜•ํƒœ๋กœ ํ‘œ์‹œ)

--์„ธ๊ธฐ ํฌ๋งท
TO_CHAR(SYSDATE,'CC'), --21 (์„ธ๊ธฐ)
TO_CHAR(SYSDATE,'BC') --AD

FROM DUAL;

 

 

 

โžก๏ธ CONNECT BY 

SELECT LEVEL-1 AS hour FROM dual CONNECT BY LEVEL<=24;

Oracle์—์„œ๋Š” ๊ณ„์ธต ๋ฐ์ดํ„ฐ๋ฅผ ์œ„ํ•ด CONNECT BY ์ ˆ์„ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค.

(์˜ค๋ผํด์—์„œ ๊ณ„์ธตํ˜• ์ฟผ๋ฆฌ๋Š” START WITH... CONNECT BY ์ ˆ๋กœ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํ•ด๋‹น ํฌ์ŠคํŒ…์—์„œ START WITH์€ ์–ธ๊ธ‰ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.)

CONNECT BY ์ ˆ์˜ ๊ฒฐ๊ณผ์—๋Š” LEVEL์ด๋ผ๋Š” ์นผ๋Ÿผ์ด ์žˆ์œผ๋ฉฐ, ์ด๋Š” ๊ณ„์ธต์˜ ๊นŠ์ด๋ฅผ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹คโ—๏ธ

LEVEL ํ•จ์ˆ˜๋ฅผ ์ด์šฉํ•˜๋ฉด  ์ˆœ์ฐจ์  ๋ชฉ๋ก์„ ์ˆ˜์›”ํ•˜๊ฒŒ ๋งŒ๋“ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 

SELECT LEVEL FROM dual CONNECT BY LEVEL <=5;

์ด SQL๋ฌธ์„ ์‹คํ–‰ํ•˜๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ฒฐ๊ณผ๋ฅผ ์ถœ๋ ฅํ•ฉ๋‹ˆ๋‹ค.

LEVEL
1
2
3
4
5

๋”ฐ๋ผ์„œ ๋ฌธ์ œ์˜ ์˜๋„์— ๋งž๊ฒŒ 0๋ถ€ํ„ฐ 24๊นŒ์ง€์˜ ์ˆซ์ž๋ฅผ ์ˆœ์„œ๋Œ€๋กœ ์ถœ๋ ฅํ•˜๋ ค๋ฉด SELECT ๋ฌธ์— LEVEL-1์„ ์ž‘์„ฑํ•˜๊ณ , CONNECT BY์ ˆ์—๋Š” LEVEL<=24๋ผ๋Š” ์กฐ๊ฑด์„ ๊ฑธ์–ด์ฃผ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

 

CONNECT BY LEVEL์„ ์ด์šฉํ•˜์—ฌ ๋‹ค์Œ๊ณผ ๊ฐ™์€ SQL๋ฌธ์„ ์ž‘์„ฑํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ค๋Š˜ ๋‚ ์งœ๋กœ๋ถ€ํ„ฐ 10์ผ๊ฐ„์˜ ๋‚ ์งœ๋ฅผ ์ˆœ์„œ๋Œ€๋กœ ์ถœ๋ ฅํ•˜๋Š” SQL๋ฌธ์ž…๋‹ˆ๋‹ค. LEVEL์€ 1๋ถ€ํ„ฐ ์‹œ์ž‘ํ•˜๊ธฐ ๋•Œ๋ฌธ์— LEVEL-1์„ ํ†ตํ•ด ์˜ค๋Š˜ ๋‚ ์งœ๋ถ€ํ„ฐ ์ถœ๋ ฅํ•˜๋„๋ก ํ–ˆ์Šต๋‹ˆ๋‹ค.

SELECT TO_CHAR(TO_DATE(sysdate,'YY-MM-DD')+LEVEL-1, 'YY-MM-DD') 
FROM dual CONNECT by level <= 10;

์ด๋ฅผ ์‹คํ–‰ํ•˜๋ฉด ์•„๋ž˜์™€ ๊ฐ™์€ ๊ฒฐ๊ณผ๊ฐ€ ์ถœ๋ ฅ๋ฉ๋‹ˆ๋‹ค.

to_char(to_date(sysdate,'yy-mm-dd')+level-1,'yy-mm-dd')
07-06-20
07-06-21
07-06-22
07-06-23
07-06-24
07-06-25
07-06-26
07-06-27
07-06-28
07-06-29

 

 

โžก๏ธ OUTER JOIN

WHERE L.hour = O.hour(+)

์กฐ์ธํ•˜๋Š” ์—ฌ๋Ÿฌ ํ…Œ์ด๋ธ”์—์„œ ํ•œ ์ชฝ์—๋Š” ๋ฐ์ดํ„ฐ๊ฐ€ ์žˆ๊ณ , ํ•œ์ชฝ์—๋Š” ๋ฐ์ดํ„ฐ๊ฐ€ ์—†๋Š” ๊ฒฝ์šฐ, ๋ฐ์ดํ„ฐ๊ฐ€ ์žˆ๋Š” ์ชฝ ํ…Œ์ด๋ธ”์˜ ๋‚ด์šฉ์„ ๋ชจ๋‘ ์ถœ๋ ฅํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ฆ‰, ์กฐ๊ฑด์— ๋งž์ง€ ์•Š์•„๋„ ํ•ด๋‹นํ•˜๋Š” ํ–‰์„ ์ถœ๋ ฅํ•˜๊ณ  ์‹ถ์„ ๋•Œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ •์ƒ์ ์œผ๋กœ ์กฐ์ธ ์กฐ๊ฑด์„ ๋งŒ์กฑํ•˜์ง€ ๋ชปํ•˜๋Š” ํ–‰๋“ค๋„ ์ถœ๋ ฅํ•˜๊ธฐ ์œ„ํ•ด OUTER JOIN์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

โ—๏ธOracle์—์„œ OUTER JOIN ์—ฐ์‚ฐ์ž๋Š”  (+)  ์ž…๋‹ˆ๋‹ค. 

โ—๏ธ์กฐ์ธ์‹œํ‚ฌ ๊ฐ’์ด ์—†๋Š” ์กฐ์ธ ์ธก์— (+)๋ฅผ ์œ„์น˜์‹œํ‚ต๋‹ˆ๋‹ค.

โ—๏ธOUTER JOIN ์—ฐ์‚ฐ์ž๋Š” ํ‘œํ˜„์‹์˜ ํ•œ ํŽธ์—๋งŒ ์˜ฌ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

โ—๏ธ๋งค์นญ๋˜๋Š” ๋ฐ์ดํ„ฐ๊ฐ€ ์—†๋Š” ๊ฒฝ์šฐ, NULL๋กœ ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค.

 

SQL๋ฌธ์„ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๋ฐ”๊พผ๋‹ค๋ฉด, ๊ฒฐ๊ณผ๋Š” ์•„๋ž˜์™€ ๊ฐ™์Šต๋‹ˆ๋‹ค.

WHERE L.hour(+) = O.hour
HOUR COUNT
7 3
8 1
9 1
10 2
11 13
12 10
13 14
14 9
15 7
16 10
17 12
18 16
19 2

O.hour์ด L.hour์˜ ๊ฐ’์„ ๋ชจ๋‘ ํฌํ•จํ•˜๊ณ  ์žˆ๊ธฐ ๋•Œ๋ฌธ์— L.hour์˜ ๊ฐ’๋งŒ ๋‚˜์˜ค๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

 

 

 

โžก๏ธ NVL

SELECT l.hour, nvl(count, 0) AS count

NVL์€ ์˜ค๋ผํด์—๋งŒ ์žˆ๋Š” ํ•จ์ˆ˜๋กœ, NVL ํ•จ์ˆ˜๋Š” ๊ฐ’์ด null์ธ ๊ฒฝ์šฐ ์ง€์ •๊ฐ’์„ ์ถœ๋ ฅํ•ฉ๋‹ˆ๋‹ค. 

์œ„ SQL๋ฌธ์—์„œ๋Š” count๊ฐ€ null์ธ ๊ฒฝ์šฐ 0์„ ์ถœ๋ ฅํ•˜๋„๋ก ํ•ฉ๋‹ˆ๋‹ค.

 

๐Ÿคž BONUS !

Oracle์—๋Š” NVL2๋„ ์žˆ์Šต๋‹ˆ๋‹ค!

NVL2("์ปฌ๋Ÿผ๋ช…", "์ง€์ •๊ฐ’1", "์ง€์ •๊ฐ’2");

NVL2๋Š” null์ด ์•„๋‹Œ ๊ฒฝ์šฐ ์ง€์ •๊ฐ’1์„ ์ถœ๋ ฅํ•˜๊ณ , null์ธ ๊ฒฝ์šฐ ์ง€์ •๊ฐ’2๋ฅผ ์ถœ๋ ฅํ•ฉ๋‹ˆ๋‹ค.

 

 

 

 

 

 

 

 

 

 

๐Ÿ”— ์ฐธ๊ณ  ๋งํฌ

 

[PROGRAMMER Level-4] ์ž…์–‘ ์‹œ๊ฐ ๊ตฌํ•˜๊ธฐ(2)[Oracle]

๋ฌธ์ œ ์„ค๋ช… ANIMAL_OUTS ํ…Œ์ด๋ธ”์€ ๋™๋ฌผ ๋ณดํ˜ธ์†Œ์—์„œ ์ž…์–‘ ๋ณด๋‚ธ ๋™๋ฌผ์˜ ์ •๋ณด๋ฅผ ๋‹ด์€ ํ…Œ์ด๋ธ”์ž…๋‹ˆ๋‹ค. ANIMAL_OUTS ํ…Œ์ด๋ธ” ๊ตฌ์กฐ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์œผ๋ฉฐ, ANIMAL_ID, ANIMAL_TYPE, DATETIME, NAME, SEX_UPON_OUTCOME๋Š”..

blue-boy.tistory.com

 

[Oracle] ์˜ค๋ผํด ๋‹ค์–‘ํ•œ ๋‚ ์งœ / ์‹œ๊ฐ„ ํฌ๋งท ๋ณ€๊ฒฝ (TO_CHAR) ์‚ฌ์šฉ๋ฒ• & ์˜ˆ์ œ

์ฟผ๋ฆฌ๋ฌธ์„ ์งœ๋‹ค๋ณด๋ฉด ์›ํ•˜๋Š” ๋‚ ์งœ์™€ ์‹œ๊ฐ„์˜ ํ˜•ํƒœ๋ฅผ ๋ฝ‘์•„๋‚ด๊ณ  ์‹ถ์„ ๊ฒฝ์šฐ๊ฐ€ ๋งŽ์Šต๋‹ˆ๋‹ค. ์˜ค๋ผํด์—์„œ ๋‚ ์งœ ํฌ๋งท์˜ ๋ณ€ํ™˜์€ TO_CHARํ•จ์ˆ˜๋ฅผ ํ™œ์šฉํ•˜์—ฌ ๋ณ€๊ฒฝํ•˜์‹ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋‹ค์–‘ํ•œ ๋‚ ์งœ / ์‹œ๊ฐ„ ํฌ๋งท SELECT --

coding-factory.tistory.com

 

[์˜ค๋ผํด|Oracle] ๋‚ ์งœํƒ€์ž… ๊ฐ€์ง€๊ณ  ๋†€๊ธฐ - TO_DATE, TO_CHAR

 ์˜ค๋ผํด Oracle ๋‚ ์งœํƒ€์ž… ๊ฐ€์ง€๊ณ  ๋†€๊ธฐ ์ฟผ๋ฆฌ๋ฅผ ์ˆ˜ํ–‰ํ•˜๋‹ค ๋ณด๋ฉด, ๋‚ ์งœ์™€ ๊ด€๋ จ๋œ ์ •๋ณด๋ฅผ ์กฐํšŒํ•˜๊ฑฐ๋‚˜ ๋ณ€๊ฒฝํ•ด์•ผ ํ•˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ์ƒ๋‹นํžˆ ๋งŽ์Šต๋‹ˆ๋‹ค. ์˜ค๋Š˜์€ ์ด๋Ÿฐ ๊ฒฝ์šฐ ๋‚ ์งœ ํƒ€์ž…์— ๋Œ€ํ•œ ์‚ฌ์šฉ๋ฒ• ๋ช‡ ๊ฐ€์ง€๋ฅผ ๏ฟฝ๏ฟฝ

nown2210.tistory.com

 

[ORACLE] CONNECT BY ํ•จ์ˆ˜ ์‚ฌ์šฉํ•˜๊ธฐ

ORACLE ์—์„œ๋Š” ๊ณ„์ธต๋ฐ์ดํ„ฐ๋ฅผ ์œ„ํ•ด CONNECT BY ์ ˆ์„ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค. CONNECT BY ๊ตฌ์„ฑ CONNECT BY ๋Š” ์•„๋ž˜์˜ 3๊ฐœ์˜ ๊ตฌ๋ฌธ์œผ๋กœ ๊ตฌ์„ฑ๋ฉ๋‹ˆ๋‹ค.  ๊ตฌ๋ฌธ  ์„ค๋ช…  WHERE  ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์ ธ์˜จ ๋’ค ๋งˆ์ง€๋ง‰์œผ๋กœ ์กฐ๊ฑด์ ˆ์— ๋งž๊ฒŒ ์ •๋ฆฌ

mozi.tistory.com

 

[Oracle] ์กฐ์ธ (JOIN), ์•„์šฐํ„ฐ ์กฐ์ธ(Outer Join)

์กฐ์ธ (JOIN)  - JOIN์€ ๊ฐ ํ…Œ์ด๋ธ”๊ฐ„์— ๊ณตํ†ต๋œ ๊ฑธ๋Ÿผ(์กฐ๊ฑด)์œผ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ํ•ฉ์ณ ํ‘œํ˜„ํ•˜๋Š” ๊ฒƒ์ด๋‹ค.  - JOIN์—๋Š” ํฌ๊ฒŒ INNER JOIN, OUTER JOIN์ด ์žˆ๋‹ค. โ–ถ ์˜ˆ์ œ ํ…Œ์ด๋ธ”์„ ํ†ตํ•ด ์ดํ•ดํ•ด๋ณด์ž. TABLE 1) MEM : ํšŒ์›ํ…Œ์ด..

goddaehee.tistory.com

 

[SQL]OUTER JOIN(์™ธ๋ถ€์กฐ์ธ)์— ๋Œ€ํ•ด ์•Œ์•„๋ณด์ž!

โ–ฃOUTER JOIN(์™ธ๋ถ€์กฐ์ธ)์ด๋ž€?   โ–ทOUTER JOIN์€ ์กฐ์ธํ•˜๋Š” ์—ฌ๋Ÿฌํ…Œ์ด๋ธ”์—์„œ ํ•œ ์ชฝ์—๋Š” ๋ฐ์ดํ„ฐ๊ฐ€ ์žˆ๊ณ , ํ•œ ์ชฝ์—๋Š” ๋ฐ์ดํ„ฐ๊ฐ€ ์—†๋Š” ๊ฒฝ์šฐ, ๋ฐ์ดํ„ฐ๊ฐ€ ์žˆ๋Š” ์ชฝ ํ…Œ์ด๋ธ”์˜ ๋‚ด์šฉ์„ ๋ชจ๋‘ ์ถœ๋ ฅํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ฆ‰, ์กฐ

rh-cp.tistory.com

 

[Oracle|์˜ค๋ผํด] NVL, NVL2 ํ•จ์ˆ˜ ์‚ฌ์šฉ๋ฐฉ๋ฒ• (null, ๊ณต๋ฐฑ, ์น˜ํ™˜)

์˜ค๋ผํด NVL, NVL2 ํ•จ์ˆ˜ ์‚ฌ์šฉ๋ฒ• ํ•ด๋‹น ์ปฌ๋Ÿผ์˜ ๊ฐ’์ด null ๊ฐ’์ธ ๊ฒฝ์šฐ ํŠน์ •๊ฐ’์œผ๋กœ ์ถœ๋ ฅํ•˜๊ณ  ์‹ถ์œผ๋ฉด NVL ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜๊ณ , null ๊ฐ’์ด ์•„๋‹๊ฒฝ์šฐ ํŠน์ •๊ฐ’์œผ๋กœ ์ถœ๋ ฅํ•˜๊ณ  ์‹ถ์œผ๋ฉด NVL2 ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋œ๋‹ค.  1. NVL

gent.tistory.com