์ค๋ผํด์์๋ ์ฐ์ฐ์๋ง์ผ๋ก ๋ค๋ฃจ๊ธฐ ์ด๋ ค์ด ๋ณต์กํ ๋ฐ์ดํฐ ์ฒ๋ฆฌ์ ๋ค์ํ ๊ฒฐ๊ณผ๋ฅผ ์ป๊ธฐ ์ํด ๋ง์ ํจ์๋ฅผ ์ ๊ณตํ๋ค.
์ด๋ฌํ ํจ์๋ ์ด์ ํฌ์คํ ์์ ์ดํด๋ณด์๋ ๋ค๋ฅธ ์ฐ์ฐ์๋ค๊ณผ ๋ง์ฐฌ๊ฐ์ง๋ก WHERE์ ์์ ์กฐํํ ํ์ ์ ๋ณํ๋ ๋ฐ ์ฌ์ฉํ ์ ์๋ค. ๋ SELECT์ ์์ ๋ฐ์ดํฐ๋ฅผ ์ํ๋ ํํ๋ก ๊ฐ๊ณตํ๊ฑฐ๋ ์๋ฏธ ์๋ ๊ฐ์ ์ถ๋ ฅํ ๋์๋ ๋ง์ด ์ฌ์ฉํ๋ค.
์ค๋ผํด ํจ์์ ์ข ๋ฅ
์ค๋ผํด ํจ์๋ ์ ์ํ ์ฃผ์ฒด๋ฅผ ๊ธฐ์ค์ผ๋ก ์ค๋ผํด์์ ๊ธฐ๋ณธ์ผ๋ก ์ ๊ณตํ๋ ๋ด์ฅ ํจ์(build-in function)์ ์ฌ์ฉ์๊ฐ ํ์์ ์ํด ์ง์ ์ ์ํ ์ฌ์ฉ์ ์ ์ ํจ์(user-defined function)๋ก ๋๋๋ค.
๋ด์ฅ ํจ์
๋ด์ฅ ํจ์๋ ์ ๋ ฅ ๋ฐฉ์์ ๋ฐ๋ผ ๋ฐ์ดํฐ ์ฒ๋ฆฌ์ ์ฌ์ฉํ๋ ํ์ด ๋๋๋ค. ๋ฐ์ดํฐ๊ฐ ํ ํ์ฉ ์ ๋ ฅ๋๊ณ ์ ๋ ฅ๋ ํ ํ๋น ๊ฒฐ๊ณผ๊ฐ ํ๋์ฉ ๋์ค๋ ํจ์๋ฅผ ๋จ์ผํ ํจ์(single-row function)๋ผ๊ณ ํ๋ค.
๋ฐ๋ฉด ์ฌ๋ฌ ํ์ด ์ ๋ ฅ๋์ด ํ๋์ ํ์ผ๋ก ๊ฒฐ๊ณผ๊ฐ ๋ฐํ๋๋ ํจ์๋ฅผ ๋ค์คํ ํจ์(multiple-row function)๋ผ๊ณ ํ๋ค.
๋จ์ผํ ํจ์ - ๋ฌธ์ ํจ์
๋ฌธ์ ํจ์๋ ๋ฌธ์ ๋ฐ์ดํฐ๋ฅผ ๊ฐ๊ณตํ๊ฑฐ๋ ๋ฌธ์ ๋ฐ์ดํฐ๋ก๋ถํฐ ํน์ ๊ฒฐ๊ณผ๋ฅผ ์ป๊ณ ์ ํ ๋ ์ฌ์ฉํ๋ค.
UPPER, LOWER, INITCAP
๋ฌธ์์ด์ ๋๋ฌธ์, ์๋ฌธ์๋ฅผ ๋ฐ๊พธ์ด ์ฃผ๋ ํจ์๋ค์ด๋ค.
ํจ์ | ์ค๋ช |
UPPER(๋ฌธ์์ด) | ๊ดํธ ์์ ๋ฌธ์ ๋ฐ์ดํฐ๋ฅผ ๋ชจ๋ ๋๋ฌธ์๋ก ๋ณํํ์ฌ ๋ฐํ |
LOWER(๋ฌธ์์ด) | ๊ดํธ ์์ ๋ฌธ์ ๋ฐ์ดํฐ๋ฅผ ๋ชจ๋ ์๋ฌธ์๋ก ๋ณํํ์ฌ ๋ฐํ |
INITCAP(๋ฌธ์์ด) | ๊ดํธ ์์ ๋ฌธ์ ๋ฐ์ดํฐ ์ค ์ฒซ ๊ธ์๋ ๋๋ฌธ์๋ก, ๋๋จธ์ง๋ ์๋ฌธ์๋ก ๋ณํํ์ฌ ๋ฐํ |
์ฌ์ฉ ์์๋ ๋ค์๊ณผ ๊ฐ๋ค.
SELECT NAME, UPPER(NAME), LOWER(NAME), INITCAP(NAME)
FROM STUDENT;
NAME | UPPER(NAME) | LOWER(NAME) | INITCAP(NAME) |
SHIN | SHIN | shin | Shin |
UPPER, LOWER, INITCAP ํจ์๋ฅผ ์ฌ์ฉํ๋ ค๋ฉด ์ ๋ ฅ ๋ฐ์ดํฐ์ ์ด ์ด๋ฆ์ด๋ ๋ฐ์ดํฐ๋ฅผ ์ง์ ์ง์ ํด์ผ ํ๋ค.
์ด๋ฅผ ์ด๋์ ์ฌ์ฉํ ์ ์์๊น?
๊ฒ์์ฐฝ์ ํ๋ ์๊ฐํด ๋ณด์. ์ ๋ชฉ์ด๋ ๋ณธ๋ฌธ์ Shin ๋ฌธ์์ด์ด ๋ค์ด๊ฐ ๋ฐ์ดํฐ๋ฅผ ๊ฒ์ํ๋ ๊ธฐ๋ฅ์ ๊ตฌํํ๋ค๋ฉด, ์๋ง ๋ค์๊ณผ ๊ฐ์ด ์ฌ์ฉํ ๊ฒ์ด๋ค.
SELECT *
FROM ํ ์ด๋ธ
WHERE ๊ฒ์ํ ์ ๋ชฉ ์ด LIKE '%Shin%'
OR ๊ฒ์ํ ๋ณธ๋ฌธ ์ด LIKE '%Shin%';
๊ทธ๋ฐ๋ฐ ์ด๋ ๊ฒ ๋๋ฉด SHIN์ด๋ shin๋ฑ์ ์กฐํ๋์ง ์๋๋ค.
์ด๋ ์กฐ๊ฑด์ ์ ์ชฝ์ ๋ฐ์ดํฐ๋ฅผ ๋ชจ๋ ๋๋ฌธ์๋ ์๋ฌธ์๋ก ๋ฐ๊พธ์ด ๋น๊ตํ๋ค๋ฉด ์ค์ ๊ฒ์์ด์ ๋, ์๋ฌธ์ ์ฌ๋ถ์ ์๊ด์์ด ์ฐพ์ ์ ์๊ฒ๋๋ค.
๋ค์๊ณผ ๊ฐ์ด ์ฌ์ฉํ ์ ์๋ค๋ ๋ง์ด๋ค.
SELECT *
FROM ํ ์ด๋ธ
WHERE UPPER(๊ฒ์ํ ์ ๋ชฉ ์ด) LIKE UPPER('%Shin%')
OR UPPER(๊ฒ์ํ ๋ณธ๋ฌธ ์ด) LIKE UPPER('%Shin%');
LENGTH
ํน์ ๋ฌธ์์ด์ ๊ธธ์ด๋ฅผ ๊ตฌํ ๋ ์ฌ์ฉ๋๋ ํจ์์ด๋ค.
์ฌ์ฉ ๋ฐฉ๋ฒ์ ์์์ ๋ฐฐ์ด UPPER, LOWER ๋ฑ๊ณผ ๊ฐ์ด ๊ดํธ ์์ ๋ฌธ์์ด์ ๋ฃ์ผ๋ฉด ๋๋ค.
๋ค์ํ ์ฌ์ฉ ์์๋ฅผ ํตํด LENGTH์ ๋ํด ์์๋ณด์.
LENGTHํจ์ ์ฌ์ฉํ๊ธฐ - ๊ธฐ๋ณธ
SELECT NAME, LENGTH(NAME)
FROM STUDENT;
๊ฒฐ๊ณผ
NAME | LENGTH(NAME) |
SHIN | 4 |
DONG | 4 |
HUN | 3 |
WHERE์ ์์ LENGTH ์ฌ์ฉํ๊ธฐ
SELECT NAME, LENGTH(NAME)
FROM STUDENT
WHERE LENGTH(NAME) > 3;
๊ฒฐ๊ณผ
NAME | LENGTH(NAME) |
SHIN | 4 |
DONG | 4 |
LENGTH ํจ์์ LENGTHB ํจ์ ๋น๊ตํ๊ธฐ
LENGTHBํจ์๋ LENGTHํจ์์ ์ฌ์ฉ ๋ฐฉ์์ ๊ฐ์ผ๋ ๋ฌธ์์ด ๋ฐ์ดํฐ ๊ธธ์ด๊ฐ ์๋ ๋ฐ์ดํธ ์๋ฅผ ๋ฐํํ๋ค.
์์ด๋ ๊ธ์๋น 1๋ฐ์ดํธ์ด๊ณ , ํ๊ธ์ ๊ธ์๋น 2๋ฐ์ดํธ๊ธฐ ๋๋ฌธ์, ํ๊ธ์ ์ฌ์ฉํ ๋ ์ฐจ์ด๊ฐ ๋๋ค.
SELECT LENGTH('ํ๊ธ'), LENGTHB('ํ๊ธ')
FROM DUAL;
๊ฒฐ๊ณผ
LENGTH('ํ๊ธ') | LENGTHB('ํ๊ธ') |
2 | 4 |
2 | 4 |
(์ฐธ๊ณ ๋ก DUAL ํ ์ด๋ธ์ ์ค๋ผํด ์์ฒด์์ ์ ๊ณต๋๋ ํ ์ด๋ธ๋ก ๊ฐ๋จํ๊ฒ ํจ์๋ฅผ ์ด์ฉํด์ ๊ณ์ฐ ๊ฒฐ๊ณผ๊ฐ์ ํ์ธํ ๋ ์ฌ์ฉํ๋ค.)
SUBSTR
๋ฌธ์์ด ์ค ์ผ๋ถ๋ง ์ถ์ถํ ๋ ์ฌ์ฉํ๋ค.
ํจ์ | ์ค๋ช |
SUBSTR(๋ฌธ์์ด, ์์ ์์น, ์ถ์ถ ๊ธธ์ด) | ๋ฌธ์์ด ๋ฐ์ดํฐ์ ์์ ์์น๋ถํฐ ์ถ์ถ ๊ธธ์ด๋งํผ ์ถ์ถํ๋ค. ์์ ์์น๊ฐ ์์์ผ ๊ฒฝ์ฐ์๋ ๋ง์ง๋ง ์์น๋ถํฐ ๊ฑฐ์ฌ๋ฌ ์ฌ๋ผ๊ฐ ์์น์์ ์์ํ๋ค. |
SUBSTR(๋ฌธ์์ด, ์์ ์์น) | ๋ฌธ์์ด ๋ฐ์ดํฐ์ ์์ ์์น๋ถํฐ ๋ฌธ์์ด ๋๊น์ง ์ถ์ถํ๋ค. ์์ ์์น๊ฐ ์์์ผ ๊ฒฝ์ฐ์๋ ๋ง์ง๋ง ์์น๋ถํฐ ๊ฑฐ์ฌ๋ฌ ์ฌ๋ผ๊ฐ ์์น์์ ๋๊น์ง ์ถ์ถํ๋ค. |
(์ฐธ๊ณ ๋ก ์ฒ์ ์์น๋ 0์ด ์๋๋ผ 1์ด๋ค!)
์ฌ์ฉ ์์๋ ๋ค์๊ณผ ๊ฐ๋ค.
SELECT NAME, SUBSTR(NAME, 1, 2), SUBSTR(NAME, 3, 2), SUBSTR(NAME, 5)
๊ฒฐ๊ณผ
NAME | SUBSTR(NAME, 1, 2) | SUBSTR(NAME, 3, 2) | SUBSTR(NAME, 5) |
SHIND | SH | IN | D |
INSTR
๋ฌธ์์ด ์์ ํน์ ๋ฌธ์๋ ๋ฌธ์์ด์ด ์ด๋์ ํฌํจ๋์ด ์๋์ง๋ฅผ ์๊ณ ์ ํ ๋ ์ฌ์ฉํ๋ค.
INSTR ํจ์๋ ์ด 4๊ฐ์ ์ ๋ ฅ ๊ฐ์ ์ง์ ํ ์ ์์ผ๋ฉฐ, ์ต์ ๋ ๊ฐ์ ์ ๋ ฅ๊ฐ, ์ฆ ์๋ณธ ๋ฌธ์์ด๊ณผ ์๋ณธ ๋ฌธ์์ด์์ ์ฐพ์ผ๋ ค๋ ๋ฌธ์ 2๊ฐ์ง๋ ํ์๋ก ์ง์ ํด ์ฃผ์ด์ผ ํ๋ค.
๊ธฐ๋ณธ ํ์
INSTR( [๋์ ๋ฌธ์์ด],
[์์น๋ฅผ ์ฐพ์ผ๋ ค๋ ๋ฌธ์ ํน์ ๋ฌธ์์ด],
[์์น ์ฐพ๊ธฐ๋ฅผ ์์ํ ๋์ ๋ฌธ์์ด ์์น (๊ธฐ๋ณธ๊ฐ์ 1)],
[์์ ์์น์์ ์ฐพ์ผ๋ ค๋ ๋ฌธ์๊ฐ ๋ช ๋ฒ์งธ๋ก ๋ฑ์ฅํ๋ ๋ฌธ์์ธ์ง ์ง์ (๊ธฐ๋ณธ๊ฐ์ 1)] );
์ฌ์ฉ ์์๋ ๋ค์๊ณผ ๊ฐ๋ค.
SELECT INSTR('HELLO, ORACLE!', 'L') AS INSTR_1,
INSTR('HELLO, ORACLE!', 'L', 5) AS INSTR_2,
INSTR('HELLO, ORACLE!', 'L', 2, 2) AS INSTR_3,
FROM DUAL;
INSTR_1 | INSTR_2 | INSTR_3 |
3 | 12 | 4 |
ํ๋ฅผ ๊ฐ์ง๊ณ ์ค๋ช ํด ๋ณด๋๋ก ํ๊ฒ ์ต๋๋ค.
1 - INSTR('HELLO, ORACLE!', 'L') AS INSTR_1 : ์์ ์์น์ ๋ช ๋ฒ์งธ L์ธ์ง ์ ํด์ง์ง ์์
1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 |
H | E | L | L | O | , | O | R | A | C | L | E | ! |
2 - INSTR('HELLO, ORACLE!', 'L', 5) AS INSTR_2 : ๋ค์ฏ ๋ฒ์งธ ๊ธ์ O๋ถํฐ L์ ์ฐพ์
1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 |
H | E | L | L | O | , | O | R | A | C | L | E | ! |
3 - INSTR('HELLO, ORACLE!', 'L', 2, 2) AS INSTR_3 : ๋ ๋ฒ์งธ ๊ธ์ E๋ถํฐ ์์ํด์ ๋ ๋ฒ์งธ๋ก ๋ฑ์ฅํ๋ L์ ์ฐพ์
1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 |
H | E | L | L | O | , | O | R | A | C | L | E | ! |
INSTR ํจ์์ ์ธ ๋ฒ์งธ ์ ๋ ฅ ๋ฐ์ดํฐ, ์ฆ ์์น ์ฐพ๊ธฐ๋ฅผ ์์ํ๋ ์์น ๊ฐ์ ์์๋ฅผ ์ธ ๋ ์๋ณธ ๋ฌธ์์ด์ ์ค๋ฅธ์ชฝ ๋๋ถํฐ ์ผ์ชฝ ๋ฐฉํฅ์ผ๋ก ๊ฒ์ํ๋ค. ๋ง์ฝ ์ฐพ์ผ๋ ค๋ ๋ฌธ์๊ฐ ๋ฌธ์์ด ๋ฐ์ดํฐ์ ํฌํจ๋์ด ์์ง ์๋ค๋ฉด ์์น ๊ฐ์ด ์์ผ๋ฏ๋ก 0์ ๋ฐํํ๋ค.
REPLACE
ํน์ ๋ฌธ์์ด ๋ฐ์ดํฐ์ ํฌํจ๋ ๋ฌธ์๋ฅผ ๋ค๋ฅธ ๋ฌธ์๋ก ๋์ฒดํ ๊ฒฝ์ฐ์ ์ ์ฉํ ํจ์์ด๋ค.
๊ธฐ๋ณธ ํ์์ ๋ค์๊ณผ ๊ฐ๋ค
REPLACE([๋ฌธ์์ด ๋ฐ์ดํฐ ๋๋ ์ด ์ด๋ฆ(ํ์)], [์ฐพ๋ ๋ฌธ์(ํ์), [๋์ฒดํ ๋ฌธ์(์ ํ)]]);
๋ง์ฝ ๋์ฒดํ ๋ฌธ์๋ฅผ ์ ํํ์ง ์๋๋ค๋ฉด ์ฐพ๋ ๋ฌธ์๋ก ์ง์ ํ ๋ฌธ์๋ ๋ฌธ์์ด์์ ์ญ์ ๋๋ค.
์ฌ์ฉ ์์๋ ๋ค์๊ณผ ๊ฐ๋ค.
SELECT '010-1234-5678' AS REPLACE_BEFORE,
REPLACE('010-1234-5678', '-', ' ') AS REPLACE_1,
REPLACE('010-1234-5678', '-') AS REPLACE_2
FROM DUAL;
REPLACE_BEFORE | REPLACE_1 | REPLACE_2 |
010-1234-5678 | 010 1234 5678 | 01012345678 |
LPAD, RPAD
๋ฐ์ดํฐ์ ์๋ฆฟ์๋ฅผ ์ง์ ํ ํ ๋ฐ์ดํฐ ๊ธธ์ด๊ฐ ์ง์ ํ ์๋ฆฟ์๋ณด๋ค ์์ ๊ฒฝ์ฐ์ ๋๋จธ์ง ๊ณต๊ฐ์ ํน์ ๋ฌธ์๋ก ์ฑ์ฐ๋ ํจ์์ด๋ค.
LPAD์ RPAD๋ ๊ฐ๊ฐ Left Padding(์ผ์ชฝ ํจ๋ฉ), Right Padding(์ค๋ฅธ์ชฝ ํจ๋ฉ)์ ๋ปํ๋ค.
LPAD๋ฅผ ์ฌ์ฉํ๋ฉด ๋จ์ ๋น ๊ณต๊ฐ์ ์ผ์ชฝ์ ์ฑ์ฐ๊ณ , RPAD๋ ์ค๋ฅธ์ชฝ์ ์ฑ์ด๋ค.
๋ง์ฝ ๋น ๊ณต๊ฐ์ ์ฑ์ธ ๋ฌธ์๋ฅผ ์ง์ ํ์ง ์์ผ๋ฉด ๊ณต๋ฐฑ๋ฌธ์๋ก ์ฑ์ฐ๊ฒ ๋๋ค
LPAD([๋ฌธ์์ด ๋ฐ์ดํฐ ๋๋ ์ด์ด๋ฆ (ํ์)], [๋ฐ์ดํฐ์ ์๋ฆฟ์ (ํ์)], [๋น ๊ณต๊ฐ์ ์ฑ์ธ ๋ฌธ์ (์ ํ)])
RPAD([๋ฌธ์์ด ๋ฐ์ดํฐ ๋๋ ์ด์ด๋ฆ (ํ์)], [๋ฐ์ดํฐ์ ์๋ฆฟ์ (ํ์)], [๋น ๊ณต๊ฐ์ ์ฑ์ธ ๋ฌธ์ (์ ํ)])
๋ค์์ ์ฌ์ฉ ์์์ด๋ค.
SELECT 'Oracle',
LPAD('Oracle', 10, '#' ) AS LPAD_1,
RPAD('Oracle', 10, '*' ) AS RPAD_1,
LPAD('Oracle', 10) AS LPAD_2,
RPAD('Oracle', 10) AS RPAD_2
FROM DUAL;
๊ฒฐ๊ณผ
'ORACLE' | LAPD_1 | RAPD_1 | LAPD_1 | RAPD_2 |
Oracle | ####Oracle | Oracle**** | Oracle | Oracle |
CONCAT
๋ ๊ฐ์ ๋ฌธ์์ด์ ํ๋๋ก ์ฐ๊ฒฐํด ์ฃผ๋ ํจ์์ด๋ค.
์ฐ๊ฒฐํ ๋๊ฐ์ ์ ๋ ฅ ๋ฐ์ดํฐ๋ฅผ ์ง์ ํ ๋, ์ด์ด๋ ๋ฌธ์์ด ๋ฐ์ดํฐ ๋ชจ๋ ์ง์ ํ ์ ์๋ค.
SELECT CONCAT(EMPNO, ENAME),
CONCAT(EMPNO, CONCAT(' : ', ENAME))
FROM EMP
WHERE ENAME = 'SCOTT';
CONCAT(EMPNO, ENAME) | CONCAT(EMPNO, CONCAT(' : ', ENAME)) |
7788SCOTT | 7788 : SCOTT |
์ถ๊ฐ๋ก || ์ฐ์ฐ์๋ ๋ฌธ์์ด์ ์ฐ๊ฒฐํ๋ค.
CONCAT๊ณผ ์ ์ฌํ๋ฉฐ, ์์ ์์๋ ||๋ฅผ ์ฌ์ฉํ๋ฉด ๋ค์๊ณผ ๊ฐ๋ค.
SELECT EMPNO || ENAME,
EMPNO || ' : ' || ENAME
FROM EMP
TRIM, LTRIM, RTRIM
๋ฌธ์์ด ๋ด์์ ํน์ ๋ฌธ์๋ฅผ ์ง์ธ ๋ ์ฌ์ฉํ๋ ํจ์์ด๋ค.
์ญ์ ํ๋ ค๋ ๋ฌธ์์ด์ ์ง์ ํด์ฃผ์ง ์์ผ๋ฉด ๊ธฐ๋ณธ์ ์ผ๋ก ๊ณต๋ฐฑ์ ์ ๊ฑฐํ๋ค.
TRIM([์ญ์ ์ต์ (์ ํ)] [์ญ์ ํ ๋ฌธ์ (์ ํ)] FROM [์๋ณธ ๋ฐ์ดํฐ ๋ฌธ์์ด (ํ์)])
FROM์ ์์ ๋ ์ต์ ์ด ์๋ค๋ฉด ์ฌ์ฉํ์ง ์์ผ๋ฉฐ, ์ญ์ ์ต์ ์๋ ์ผ์ชฝ์ ์๋ ๊ธ์๋ฅผ ์ง์ฐ๋ LEADING, ์ค๋ฅธ์ชฝ ๊ธ์๋ฅผ ์ง์ฐ๋ TRAILING, ์์ชฝ ๋ฌธ์๋ฅผ ์ง์ฐ๋ BOTH๊ฐ ์๋ค.
์ฌ์ฉ ์์๋ ๋ค์๊ณผ ๊ฐ๋ค.
TRIM ์ฌ์ฉํ๊ธฐ - ์ญ์ ํ ๋ฌธ์๊ฐ ์์ ๋
SELECT '[' || TRIM(' _ _Oracle_ _ ') || ']' AS TRIM,
'[' || TRIM(LEADING FROM ' _ _Oracle_ _ ') || ']' AS TRIM_LEADING,
'[' || TRIM(TRAILING FROM ' _ _Oracle_ _ ') || ']' AS TRIM_TRAILING,
'[' || TRIM(BOTH FROM' _ _Oracle_ _ ') || ']' AS TRIM_BOTH
FROM DUAL;
๊ฒฐ๊ณผ
TRIM | TRIM_LEADING | TRIM_TRAILING | TRIM_BOTH |
[_ _Oracle_ _] | [_ _Oracle_ _ ] | [ _ _Oracle_ _] | [_ _Oracle_ _] |
TRIM ์ฌ์ฉํ๊ธฐ - ์ญ์ ํ ๋ฌธ์๊ฐ ์์ ๋
SELECT '[' || TRIM('_' FROM ' _ _Oracle_ _ ') || ']' AS TRIM,
'[' || TRIM(LEADING '_' FROM ' _ _Oracle_ _ ') || ']' AS TRIM_LEADING,
'[' || TRIM(TRAILING '_' FROM ' _ _Oracle_ _ ') || ']' AS TRIM_TRAILING,
'[' || TRIM(BOTH '_' FROM' _ _Oracle_ _ ') || ']' AS TRIM_BOTH
FROM DUAL;
๊ฒฐ๊ณผ
TRIM | TRIM_LEADING | TRIM_TRAILING | TRIM_BOTH |
[ _Oracle_ ] | [ _Oracle_ _ ] | [ _ _Oracle_ ] | [ _ _Oracle_ _ ] |
LTRIM, RTRIM ์ฌ์ฉ๋ฒ
LTRIM, RTRIM ํจ์๋ ๊ฐ๊ฐ ์ผ์ชฝ, ์ค๋ฅธ์ชฝ์ ์ง์ ๋ฌธ์๋ฅผ ์ญ์ ํ๋ ๋ฐ ์ฌ์ฉํ๋ค.
TRIM๊ณผ ๋ค๋ฅธ ์ ์ ์ญ์ ํ ๋ฌธ์๋ฅผ ์ฌ๋ฌ๊ฐ ์ง์ ํ ์ ์๋ค๋ ๊ฒ์ด๋ค.
LTRIM([์๋ณธ ๋ฌธ์์ด ๋ฐ์ดํฐ (ํ์)], [์ญ์ ํ ๋ฌธ์ ์งํฉ (์ ํ)])
RTRIM([์๋ณธ ๋ฌธ์์ด ๋ฐ์ดํฐ (ํ์)], [์ญ์ ํ ๋ฌธ์ ์งํฉ (์ ํ)])
SELECT '[' || TRIM(' _Oracle_ ') || ']' AS TRIM,
'[' || LTRIM(' _Oracle_ ') || ']' AS LTRIM,
'[' || LTRIM('<_Oracle_>', '_<') || ']' AS LTRIM_2,
'[' || RTRIM(' _Oracle_ ') || ']' AS RTRIM,
'[' || RTRIM('<_Oracle_>', '>_') || ']' AS RTRIM_2
FROM DUAL;
๊ฒฐ๊ณผ
TRIM | LTRIM | LTRIM_2 | RTRIM | RTRIM_2 |
[_Oracle_] | [_Oracle_ ] | [Oracle_>] | [ _Oracle_] | [<_Oracle] |
LTRIM, RTRIM์ ์ฌ์ฉํ ์์์์ ์ญ์ ๋์์ด ๋ฌธ์์ผ ๊ฒฝ์ฐ ํด๋น ๋ฌธ์์ ์์์ ๋ฐ๋ณต์ ํตํด ๋ง๋ค์ด ๋ผ ์ ์๋ ๋ชจ๋ ์กฐํฉ์ด ๊ฐ๊ฐ ์ผ์ชฝ, ์ค๋ฅธ์ชฝ๋ถํฐ ์ญ์ ๋์ด๊ฐ๋ค.
LTRIM_2 ์ ๊ฒฝ์ฐ <_ ๋ฌธ์์ด์ _, < ๋ฌธ์์ ์กฐํฉ์ผ๋ก ํํ ๊ฐ๋ฅํ ๋ฌธ์์ด๋ฏ๋ก ์ญ์ ๋๋ค.
ํ์ง๋ง ๊ทธ๋ค์์ ์ด์ด์ง๋ Oracle์ O ๋ฌธ์๋ _ <๋ก ์กฐํฉํ ์ ์๋ ๋ฌธ์๊ฐ ์์๋๋ฏ๋ก ์ด ๋จ๊ณ์์ LTRIM์ ํตํ ์์ ์ ๋๋๋ค.
์๋ฅผ ํ๋ ๋ ๋ค์๋ฉด ๋ง์ฝ ์๋ณธ ๋ฌธ์์ด์ด <_<_Oracle์ธ ๊ฒฝ์ฐ์๋ Oracle๋ง ๋จ๊ฒ ๋๊ณ , <_O<_racle์ธ ๊ฒฝ์ฐ์๋ O<_racle์ด ๋จ๊ฒ ๋๋ค.