SQL

ORACLE ํ•จ์ˆ˜ (INSTR/REPLACE/CONCAT/TRIM ์‚ฌ์šฉ๋ฒ•, ์‚ฌ์šฉ์˜ˆ์ œ)

Arr_ 2022. 3. 22. 15:35

1. instr

- ํŠน์ • ๋ฌธ์ž์—ด์˜ ์œ„์น˜๋ฅผ ์ฐพ์•„์„œ ๋Œ๋ ค์คŒ

- instr(๋ฌธ์ž์—ด, ์ฐพ์„ ๋ฌธ์ž ๊ฐ’, ์ฐพ๊ธฐ๋ฅผ ์‹œ์ž‘ํ•  ์œ„์น˜, ์ฐพ์€ ๊ฒฐ๊ณผ์˜ ์ˆœ๋ฒˆ) ์ˆœ์œผ๋กœ ์ž‘์„ฑํ•จ

 

SELECT
    instr('HELLO, ORACLE!', 'L'),
    instr('HELLO, ORACLE!', 'L', 5),
    instr('HELLO, ORACLE!', 'L', 2, 2)
FROM
    dual;

 

 

(1) ์ œ์ผ ์ฒ˜์Œ์— ๋‚˜์˜ค๋Š” '์ด๊ฒƒ'์˜ ์œ„์น˜ ์ฐพ๊ธฐ

SELECT
    instr('์ด๊ฒƒ์ด Oracle์ด๋‹ค. ์ด๊ฒƒ๋„ ์˜ค๋ผํด์ด๋‹ค.', '์ด๊ฒƒ')
FROM
    dual;

 

 

(2) ์‚ฌ์› ์ด๋ฆ„์— ๋ฌธ์ž 'S'๊ฐ€ ์žˆ๋Š” ์‚ฌ์› ๊ตฌํ•˜๊ธฐ

 

- ์ด๋ฆ„์— S๊ฐ€ ํ•˜๋‚˜๋ผ๋„ ์žˆ์œผ๋ฉด 1์ด์ƒ์ด ๋‚˜์˜ค๊ธฐ ๋•Œ๋ฌธ์— 0๋ณด๋‹ค ํฐ ๊ฒฝ์šฐ๋ฅผ ์กฐํšŒ

SELECT
    *
FROM
    emp
WHERE
    instr(ename, 'S') > 0;

 

- like๋ฅผ ์ด์šฉํ•ด์„œ ์ฐพ๋Š” ๋ฐฉ๋ฒ•๋„ ๊ฐ€๋Šฅ

SELECT
    *
FROM
    emp
WHERE
    ename LIKE '%S%';

 

 

2. replace

- ํŠน์ • ๋ฌธ์ž์—ด์„ ์ง€์ •๋œ ๋‹ค๋ฅธ ๋ฌธ์ž์—ด๋กœ ๋ณ€๊ฒฝํ•  ๋•Œ ์‚ฌ์šฉํ•จ

- REPLACE(๋ฌธ์ž์—ด or ์—ด ์ด๋ฆ„, ๋ฐ”๊พธ๋ ค๋Š” ๋ฌธ์ž์—ด, ๋ฐ”๋€” ๋ฌธ์ž์—ด) ์ˆœ์œผ๋กœ ์ž‘์„ฑํ•จ

 

(1) '-'๋ฅผ ๊ณต๋ฐฑ์œผ๋กœ ๋ณ€๊ฒฝํ•˜๊ธฐ

SELECT
    '010-1234-5678'                    AS ์›๋ณธ,
    replace('010-1234-5678', '-', ' ') AS replace1
FROM
    dual;

 

 

3. concat

- ์—ฌ๋Ÿฌ ๋ฌธ์ž์—ด์„ ํ•˜๋‚˜๋กœ ํ•ฉ์น  ๋•Œ ์‚ฌ์šฉํ•จ

- CONCAT(๋ฌธ์ž์—ด1, ๋ฌธ์ž์—ด2, ๋ฌธ์ž์—ด3) ์ˆœ์œผ๋กœ ์ž‘์„ฑํ•จ

 

(1) ์ด๋ฆ„์ด scott์ธ ์‚ฌ์›์˜ empno์™€ ename ํ•ฉ์ณ์„œ ์ถœ๋ ฅ, ์กฐํšŒํ•˜๊ธฐ

SELECT
    empno,
    ename,
    concat(empno, ename)
FROM
    emp
WHERE
    ename = 'SCOTT';

 

 

(2) ์ด๋ฆ„์ด scott์ธ ์‚ฌ์›์˜  empno์™€ ename ์กฐํšŒํ•˜๊ธฐ

SELECT
    empno,
    ename,
    concat(empno, concat(':', ename))
FROM
    emp
WHERE
    ename = 'SCOTT';

 

 

4. trim

- ๋ฌธ์ž์—ด์•ˆ์— ํฌํ•จ๋œ ๊ณต๋ฐฑ์„ ์ œ๊ฑฐํ•  ๋•Œ ์‚ฌ์šฉํ•˜๋Š” ํ•จ์ˆ˜

 

(1) '์ด๊ฒƒ์ด' ์ „์ฒด ๊ณต๋ฐฑ์ œ๊ฑฐํ•˜๊ธฐ

SELECT
    '   ์ด๊ฒƒ์ด   ',
    TRIM('   ์ด๊ฒƒ์ด   ')
FROM
    dual;

 

 

(2) 'oracle'์˜ ์ง€์ •๋œ ์œ„์น˜์— ๋ฌธ์ž ์ œ๊ฑฐํ•˜๊ธฐ

- ||์€ ์—ฐ๊ฒฐ์—ฐ์‚ฐ์ž๋กœ ๊ฐ ์—ด์˜ ๊ฒฐ๊ณผ๋ฅผ ์—ฐ๊ฒฐํ•ด ํ•˜๋‚˜์˜ ์—ด๋กœ ๊ฒฐ๊ณผ๋ฅผ ํ‘œํ˜„ํ•  ์ˆ˜ ์žˆ์Œ

- || ์ด์šฉ์‹œ ๋ฌธ์ž๋ฅผ ๋ถ™์ผ ๋•Œ๋Š” ์ž‘์€ ๋”ฐ์˜ดํ‘œ๋ฅผ ์‚ฌ์šฉํ•จ

 

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;