CASE
WHEN ์กฐ๊ฑด์1 THEN ์กฐ๊ฑด์ 1์ ๊ฒฐ๊ณผ
WHEN ์กฐ๊ฑด์2 THEN ์กฐ๊ฑด์ 2์ ๊ฒฐ๊ณผ
.......
WHEN ์กฐ๊ฑด์n THEN ์กฐ๊ฑด์ n์ ๊ฒฐ๊ณผ
ELSE ๋ค๋ฅธ ๊ฒฐ๊ณผ
END
์ด๋ ELSE๋ ์๋ต๊ฐ๋ฅํ๋ค
END๋ ์๋ถ์ด๋ฉด ์ค๋ฅ๊ฐ ๋ฐ์ํ๋ค.
SELECT CASE '01' WHEN '01' THEN 'A'
WHEN '02' THEN 'B'
WHEN '03' THEN 'C'
ELSE 'ETC'
END"TEST"
FROM DUAL;
-- A
SELECT CASE '01' WHEN '02' THEN 'A'
WHEN '01' THEN 'B'
WHEN '03' THEN 'C'
ELSE 'ETC'
END"TEST"
FROM DUAL;
--B
SELECT CASE '01' WHEN '03' THEN 'A'
WHEN '02' THEN 'B'
WHEN '01' THEN 'C'
ELSE 'ETC'
END"TEST"
FROM DUAL;
--C
SELECT CASE '11' WHEN '03' THEN 'A'
WHEN '02' THEN 'B'
WHEN '01' THEN 'C'
ELSE 'ETC'
END"TEST"
FROM DUAL;
--ETC
SELECT NAME, TEL,
CASE SUBSTR(TEL,1,INSTR(TEL,')',1,1)-1)
WHEN '02' THEN 'SEOUL'
WHEN '031' THEN 'GYEONGGI'
WHEN '051' THEN 'BUSAN'
WHEN '052' THEN 'ULSAN'
WHEN '055' THEN 'GYEONGNAM'
ELSE 'ETC'
END"LOC"
FROM STUDENT
WHERE DEPTNO1 =201;
SELECT NAME
, SUBSTR(JUMIN,3,2)"MONT"
, CASE SUBSTR(JUMIN,3,2)
WHEN '01' THEN '1/4'
WHEN '02' THEN '1/4'
WHEN '03' THEN '1/4'
WHEN '03' THEN '1/4'
WHEN '04' THEN '2/4'
WHEN '05' THEN '2/4'
WHEN '06' THEN '2/4'
WHEN '07' THEN '3/4'
WHEN '08' THEN '3/4'
WHEN '09' THEN '3/4'
ELSE '4/4'
END"Qua"
FROM STUDENT;
๋๋
SELECT NAME
, SUBSTR(JUMIN,3,2)"MONTH"
, CASE
WHEN SUBSTR(JUMIN,3,2) between 01 and 03 THEN '1/4'
WHEN SUBSTR(JUMIN,3,2) between 04 and 06 THEN '2/4'
WHEN SUBSTR(JUMIN,3,2) between 07 and 09 THEN '3/4'
ELSE '4/4'
END"Qua"
FROM STUDENT;
SELECT EMPNO
, ENAME
, SAL
, CASE
WHEN SAL between 1 and 1000 THEN 'LEVEL 1'
WHEN SAL between 1001 and 2000 THEN 'LEVEL 2'
WHEN SAL between 2001 and 3000 THEN 'LEVEL 3'
WHEN SAL between 3001 and 4000 THEN 'LEVEL 4'
WHEN SAL >4000 THEN 'LEVEL 5'
END"LEVEL"
FROM EMP
ORDER BY SAL DESC;
REGEXP_LIKE
REGEXP_REPLACE
REGEXP_COUNT
๋ฑ๋ฑ...
SELECT *
FROM T_REG;
-- 12๊ฑด
-- (์๋ฌธ์, ํน์๋ฌธ์, ์ซ์, ๋๋ฌธ์ ๋ฑ์ด ๋ค์ด์์)
SELECT *
FROM T_REG
WHERE REGEXP_LIKE(TEXT,'[a-z]');
-- 6๊ฑด (์๋ฌธ์ ์ํ๋ฒณ์ด ๋ค์ด์์)
-- abc 123, abc 123, a1b2c3, aabbcc123, 123abc, abc
SELECT *
FROM T_REG
WHERE REGEXP_LIKE(TEXT,'[A-Z]');
-- 3๊ฑด (๋๋ฌธ์ ์ํ๋ฒณ์ด ๋ค์ด์์)
SELECT *
FROM T_REG
WHERE REGEXP_LIKE(TEXT,'[a-zA-Z]');
-- 9๊ฑด (๋๋ฌธ์, ์๋ฌธ์ ์ํ๋ฒณ์ด ๋ค์ด์์)
SELECT *
FROM T_REG
WHERE REGEXP_LIKE(TEXT,'[a-z] ');
-- 2๊ฑด, ์๋ฌธ์ ์๊ณ , ๋ค์์นธ์ด ๊ณต๋ฐฑ์ธ ๊ฒฝ์ฐ
SELECT *
FROM T_REG
WHERE REGEXP_LIKE(TEXT,'[a-z] [0-9]');
-- ์๋ฌธ์๊ฐ ์๊ณ 1๋ฒ์ ๊ณต๋ฐฑ ๋ค ๋ค์์นธ์ด ์์ด์ธ ๊ฒฝ์ฐ
SELECT *
FROM T_REG
WHERE REGEXP_LIKE(TEXT,'[a-z] [0-9]');
-- 1๊ฑด ์๋ฌธ์๊ฐ ์๊ณ , 2๋ฒ์ ๊ณต๋ฐฑ ๋ค ์ซ์๊ฐ ์ค๋ ๊ฒฝ์ฐ
-- abc 123
SELECT *
FROM T_REG
WHERE REGEXP_LIKE(TEXT,'[a-z] [0-9]');
-- 0๊ฑด ์๋ฌธ์๊ฐ ์๊ณ , 3๋ฒ์ ๊ณต๋ฐฑ ๋ค ์ซ์๊ฐ ์ค๋ ๊ฒฝ์ฐ
SELECT *
FROM T_REG
WHERE REGEXP_LIKE(TEXT,'[[:space:]]');
-- ๋ฌธ์ ๋ค์ ๊ณต๋ฐฑ์ด ์ค๋ ๊ฒฝ์ฐ 4๊ฑด
-- space๋ ๋ฌด์กฐ๊ฑด ์๋ฌธ์๋ง ์ธ์ํจ.
-- ๋๋ฌธ์๋ก SPACE ์์ฑํ ๊ฒฝ์ฐ ์ธ์X
SELECT *
FROM T_REG
WHERE REGEXP_LIKE(TEXT,'[a-z]{1}');
-- ์๋ฌธ์ 1์ ์ด์ 6๊ฑด
SELECT *
FROM T_REG
WHERE REGEXP_LIKE(TEXT,'[a-z]{2}');
-- ์๋ฌธ์ 2์ ์ด์ 5๊ฑด
SELECT *
FROM T_REG
WHERE REGEXP_LIKE(TEXT,'[a-z]{3}');
-- ์๋ฌธ์ 3์ ์ด์ 5 ๊ฑด
SELECT *
FROM T_REG
WHERE REGEXP_LIKE(TEXT,'[a-z]{4}');
-- ์๋ฌธ์ 4์ ์ด์ 1๊ฑด
SELECT *
FROM T_REG
WHERE REGEXP_LIKE(TEXT,'[a-z]{5}');
-- ์๋ฌธ์ 5์ ์ด์ 1๊ฑด
SELECT *
FROM T_REG
WHERE REGEXP_LIKE(TEXT,'[a-z]{6}');
-- ์๋ฌธ์ 6์ ์ด์ 1๊ฑด
SELECT *
FROM T_REG
WHERE REGEXP_LIKE(TEXT,'[a-z]{7}');
-- ์๋ฌธ์ 7์ ์ด์ 0๊ฑด
SELECT *
FROM T_REG
WHERE REGEXP_LIKE(TEXT,'[0-9]');
-- ์ซ์๊ฐ ํฌํจ ๋ ๊ฒฝ์ฐ 9๊ฑด
SELECT *
FROM T_REG
WHERE REGEXP_LIKE(TEXT,'[0-9]{2}');
--์ฐ์์ผ๋ก ์ซ์๊ฐ 2์ ์ด์ ๋์ค๋ ๊ฒฝ์ฐ 8๊ฑด
SELECT *
FROM T_REG
WHERE REGEXP_LIKE(TEXT,'[0-9]{3}');
--์ฐ์์ผ๋ก ์ซ์๊ฐ 3์ ์ด์ ๋์ค๋ ๊ฒฝ์ฐ 8๊ฑด
SELECT *
FROM T_REG
WHERE REGEXP_LIKE(TEXT,'[0-9]{4}');
--์ฐ์์ผ๋ก ์ซ์๊ฐ 4์ ์ด์ ๋์ค๋ ๊ฒฝ์ฐ 1๊ฑด
SELECT *
FROM T_REG
WHERE REGEXP_LIKE(TEXT,'[0-9]{5}');
--์ฐ์์ผ๋ก ์ซ์๊ฐ 5์ ์ด์ ๋์ค๋ ๊ฒฝ์ฐ 1๊ฑด
SELECT *
FROM T_REG
WHERE REGEXP_LIKE(TEXT,'[0-9]{6}');
--์ฐ์์ผ๋ก ์ซ์๊ฐ 6์ ์ด์ ๋์ค๋ ๊ฒฝ์ฐ 1๊ฑด
SELECT *
FROM T_REG
WHERE REGEXP_LIKE(TEXT,'[0-9]{7}');
--์ฐ์์ผ๋ก ์ซ์๊ฐ 2์ ์ด์ ๋์ค๋ ๊ฒฝ์ฐ 0๊ฑด
SELECT *
FROM T_REG
WHERE REGEXP_LIKE(TEXT,'[a-z][0-9]{1}');
-- ์๋ฌธ์๋ค์ ์ซ์๊ฐ 1๊ฐ ์ด์ ๋์ค๋ ๊ฒฝ์ฐ 1๊ฑด
SELECT *
FROM T_REG
WHERE REGEXP_LIKE(TEXT,'[a-z][0-9]{2}');
-- ์๋ฌธ์ ๋ค์ ์ซ์๊ฐ ์ฐ๋ฌ์ 2๊ฐ ์ด์ ๋์ค๋ ๊ฒฝ์ฐ 1๊ฑด
SELECT *
FROM T_REG
WHERE REGEXP_LIKE(TEXT,'[a-z][0-9]{3}');
-- ์๋ฌธ์ ๋ค์ ์ซ์๊ฐ ์ฐ๋ฌ์ 3๊ฐ ์ด์ ๋์ค๋ ๊ฒฝ์ฐ 1๊ฑด
SELECT *
FROM T_REG
WHERE REGEXP_LIKE(TEXT,'[a-z][0-9]{4}');
-- ์๋ฌธ์ ๋ค์ ์ซ์๊ฐ ์ฐ๋ฌ์ 4๊ฐ ์ด์ ๋์ค๋ ๊ฒฝ์ฐ 0๊ฑด
SELECT *
FROM T_REG
WHERE REGEXP_LIKE(TEXT,'[a-zA-Z]');
-- ์๋ฌธ์์ ๋๋ฌธ์ ๋๊ฐ ๋ค ์๋ ๊ฒฝ์ฐ
SELECT *
FROM T_REG
WHERE REGEXP_LIKE(TEXT,'^[a-zA-Z]');
-- ์ฒซ๊ธ์๊ฐ ๋๋ฌธ์ ๋๋ ์๋ฌธ์์ธ ๊ฒฝ์ฐ 8๊ฑด
SELECT *
FROM T_REG
WHERE REGEXP_LIKE(TEXT,'^[0-9A-Z]');
-- ์ฒซ๊ธ์๊ฐ ์ซ์ ๋๋ ๋๋ฌธ์์ธ ๊ฒฝ์ฐ
SELECT *
FROM T_REG
WHERE REGEXP_LIKE(TEXT,'[a-z]$');
-- ์๋ฌธ์๋ก ๋๋๋ ๊ฒฝ์ฐ
--123abc, abc
SELECT *
FROM T_REG
WHERE REGEXP_LIKE(TEXT,'[A-Z]$');
-- ๋๋ฌธ์๋ก ๋๋๋ ๊ฒฝ์ฐ 0๊ฑด
SELECT *
FROM T_REG
WHERE REGEXP_LIKE(TEXT,'[0-9]$');
-- ์ซ์๋ก ๋๋๋ ๊ฒฝ์ฐ
-- ABC123, ABC 123, ABC 123, abc 123, abc 123, a1b2c3, aabbcc123,123123
SELECT *
FROM T_REG
WHERE REGEXP_LIKE(TEXT,'[^a-z]');
-- ์๋ฌธ์๋ก ์์ํ์ง ์๋ ๊ฒฝ์ฐ
SELECT *
FROM T_REG
WHERE REGEXP_LIKE(TEXT,'[^0-9]');
-- ์ซ์๋ก ์์๋์ง ์๋ ๊ฒฝ์ฐ
SELECT *
FROM T_REG
WHERE REGEXP_LIKE(TEXT,'^[^0-9a-z]');
-- ์๋ฌธ์๋ ์ซ์๋ก ์์๋์ง ์๋ ๊ฒฝ์ฐ 5๊ฑด
--ABC123, ABC 123, ABC 123, ?/!@#$*&, \~*().,
SELECT *
FROM T_REG
WHERE REGEXP_LIKE(TEXT,'[^a-z]');
-- ์๋ฌธ์๋ก๋ง ๊ตฌ์ฑ๋ ๊ฒ์ด ์๋ ๊ฒฝ์ฐ
--(์๋ฌธ์๋ก๋ง ๊ตฌ์ฑ๋๊ฒ์ด ์๋, ๋๋ฌธ์, ์ซ์, ํน์๋ฌธ์๋ค์ด ์๋ค๋ ๋ง)
--ABC123
--ABC 123
--ABC 123
--abc 123
--abc 123
--a1b2c3
--aabbcc123
--?/!@#$*&,~*().
--123123
--123abc
SELECT *
FROM T_REG
WHERE NOT REGEXP_LIKE(TEXT,'[a-z]');
-- ์๋ฌธ์๊ฐ ๋ค์ด์๋ ๊ฒ๋ค์ ๋ค ๋ฐฐ์ ํ ๊ฒ๋ค
--ABC123, ABC 123 ,ABC 123 ,?/!@#$*&,\~*()., ,123123
SELECT *
FROM T_REG
WHERE NOT REGEXP_LIKE(TEXT,'[a-zA-Z]');
--์๋ฌธ์ ๋๋ฌธ์ ๋ค์ด๊ฐ๊ฒ๋ค์ ๋ค ๋ฐฐ์ ํ๊ฒ๋ค
SELECT *
FROM T_REG
WHERE NOT REGEXP_LIKE(TEXT,'[0-9]');
-- ์ซ์๊ฐ ๋ค์ด๊ฐ๊ฒ๋ค์ ๋ฐฐ์ ํ๊ฒ๋ค
SELECT NAME
, ID
FROM STUDENT
WHERE REGEXP_LIKE(ID,'^M(a|o)');
-- ์์ด๋ ๋งจ ์์ ๋๋ฌธ์ M์ด ์ค๊ณ ๋ค์ a๋ o ๊ฐ ์ค๋ ๊ฒฝ์ฐ
SELECT NAME
, ID
FROM STUDENT
WHERE REGEXP_LIKE(ID,'^M(a|o)');
-- ์์ด๋ ๋งจ ์์ ๋๋ฌธ์ M์ด ์ค๊ณ ๋ค์ a๋ o ๊ฐ ์ค๋ ๊ฒฝ์ฐ
STUDENT ํ ์ด๋ธ์์ ์ง์ญ๋ฒํธ๊ฐ 2์๋ฆฌ์ด๊ณ , ๊ทธ ๋ค์ ๊ตญ๋ฒ์ด ์ฐ์์ ์ผ๋ก 4์๋ฆฌ๊ฐ ๋์ค๋ ๊ฐ ์ถ๋ ฅํ๊ธฐ
SELECT NAME
, TEL
FROM STUDENT
WHERE REGEXP_LIKE(TEL,'^[0-9]{2}\)[0-9]{4}');
-- ํน์ ๋ฌธ์๋ฅผ ์ฐ๊ธฐ ์ํด์๋ ์์ ์ญ์ฌ๋์\๋ฅผ ์ฌ์ฉํ๋ฉด ๋๋ค.
SELECT NAME
, TEL
FROM STUDENT
WHERE ((INSTR(TEL,')')-1)= 2)
AND
REGEXP_LIKE(TEL,'[)][0-9]{4}');
SELECT TEXT
, REGEXP_REPLACE(TEXT,'[0-9]','*') "NO->CHAR"
FROM T_REG;
-- ์ซ์๋ฅผ *๋ก ๋ฐ๊ฟ์ค.
T_REG2 ํ ์ด๋ธ์์ IP์ .(DOT)๋ถ๋ถ ๋ชจ๋ ์ญ์ ํ๊ณ ์ถ๋ ฅ
SELECT no
, IP
, REGEXP_REPLACE(IP,'\.','/',1,1) "Dot Remove"
FROM T_REG2;
SELECT no
, IP
, REGEXP_REPLACE(IP,'\.','/',1,1) "REPLACE1"
, REGEXP_REPLACE(IP,'\.','/',4,1) "REPLACE1"
, REGEXP_REPLACE(IP,'\.','/',4,2) "REPLACE1"
, REGEXP_REPLACE(IP,'\.','/',4,2) "REPLACE1"
, REGEXP_REPLACE(IP,'\.','/',4,2) "REPLACE1"
FROM T_REG2;
SELECT REGEXP_REPLACE('aaa bb c d','( ){1}',' ') "a"
-- ๊ณต๋ฐฑ ํ๋ ์ด์์ธ ๋ถ๋ถ์ ์์ค๋ค.
,REGEXP_REPLACE('aaa bb c d','( ){1}',' ') "b"
-- ๊ณต๋ฐฑ ํ๋์ธ ๋ถ๋ถ์ ๊ณต๋ฐฑ์ผ๋ก ๋ฐ๊พผ๋ค.(์ค์ง์ ์ผ๋ก ๋ณํ ์๋ ๊ฒฝ์ฐ)
,REGEXP_REPLACE('aaa bb c d','( ){2}','') "c"
-- ๊ณต๋ฐฑ 2๊ฐ์ธ ๋ถ๋ถ์ ์์ค๋ค.(๊ณต๋ฐฑ 1๊ฐ์๋ ๊ณณ์ ๋์ด๊ฐ)
,REGEXP_REPLACE('aaa bb c d','( ){3}','') "d"
-- ๊ณต๋ฐฑ 3๊ฐ์ธ ๋ถ๋ถ์ ์์ค๋ค.(๊ณต๋ฐฑ 1,2๊ฐ์๋ ๊ณณ์ ๋์ด๊ฐ)
,REGEXP_REPLACE('aaa bb c d','( ){2,}','') "e"
-- ๊ณต๋ฐฑ 2๊ฐ ์ด์์ธ ๋ถ๋ถ์ ์์ค๋ค.
,REGEXP_REPLACE('aaa bb c d','( ){3,}','') "f"
-- ๊ณต๋ฐฑ 3๊ฐ ์ด์์ธ ๋ถ๋ถ์์ค๋ค.
,REGEXP_REPLACE('aaa bb c d','( ){1,}','') "g"
--๊ณต๋ฐฑ 1๊ฐ์ด์์ธ ๊ณณ์ ์์ฐ(๊ณต๋ฐฑ ์์ ์์ด์ง)
FROM DUAL;
SELECT REGEXP_REPLACE('aaa bbb','( ){2, }','*') "*"
, REGEXP_REPLACE('aaa bbb','( ){2, }','*') "*"
, REGEXP_REPLACE('aaa bbb','( ){2, }','*') "*"
, REGEXP_REPLACE('aaa bbb','( ){2}','*') "*"
FROM DUAL;
SELECT TEXT
,REGEXP_COUNT(TEXT,'a')"C"
-- TEXT์ ์๋ฌธ์ a์ ๊ฐฏ์
,REGEXP_COUNT(TEXT,'bc')"C"
-- ์๋ฌธ์ bc์ ๊ฐฏ์
,REGEXP_COUNT(TEXT,'12')"C"
-- ์ซ์ 12์ ๊ฐฏ์
,REGEXP_COUNT(TEXT,'c',5)"C"
-- 5๋ฒ์งธ ๊ธ์ ์ดํ๋ก ์๋ฌธ์ c์ ๊ฐฏ์
,REGEXP_COUNT(TEXT,'c')"C"
--์๋ฌธ์ c์ ๊ฐฏ์
,REGEXP_COUNT(TEXT,'c',1,'i')"C"
--'i'๋ ๋์๋ฌธ์ ๋ ๋ค ํด๋น๋จ.
-- ์ฒซ๋ฒ์งธ ์๋ฆฌ๋ถํฐ ๋์๋ฌธ์ ๊ตฌ๋ณ ์์ด c์ ๊ฐฏ์
,REGEXP_COUNT(TEXT,'c',5,'i')"C"
--'i'๋ ๋์๋ฌธ์ ๋ ๋ค ํด๋น๋จ.
-- 5๋ฒ์งธ ์๋ฆฌ๋ถํฐ ๋์๋ฌธ์ ๊ตฌ๋ณ ์์ด c์ ๊ฐฏ์
,REGEXP_COUNT(TEXT,'.')"C"
-- ๊ณต๋ฐฑ๊ณผ ๊ธ์ ํฌ๊ธฐ(TEXT์ ๊ธธ์ด)
-- =LENGTH (TEXT)
, LENGTH (TEXT)"C"
,REGEXP_COUNT(TEXT,'\.')"C"
-- ํน์ ๋ฌธ์ . ์ด ์๋ ๊ฐฏ์
,REGEXP_COUNT(TEXT,'aa')"V"
-- aa ์ด ์๋ ๊ฐฏ์
,REGEXP_COUNT(TEXT,'a{2}')"V"
-- a๊ฐ ์ฐ์ 2๊ฐ๊ฐ ์๋์ง
,REGEXP_COUNT(TEXT,'{a}{a}')"V"
-- a๊ฐ ์ฐ์ 2๊ฐ๊ฐ ์๋์ง
--"V" 4๊ฐ๋ค ๋์ผํ ์๋ฏธ
FROM T_REG;