ex10_string_fucnction
1. upper(), lower(), initcap()
- varchar2 upper(์ปฌ๋ผ) : ๋๋ฌธ์๋ก ๋ณํ
- varchar2 lower(์ปฌ๋ผ) : ์๋ฌธ์๋ก ๋ณํ
- varchar2 initcap(์ปฌ๋ผ) : ์ฒซ๊ธ์๋ง ๋๋ฌธ์, ๋๋จธ์ง ์๋ฌธ์๋ก ๋ณํ (์นด๋ฉ ํ๊ธฐ๋ฒ)
select
'abc', initcap('abc'), initcap('aBC') -- ๊ฒฐ๊ณผ : abc/Abc/Abc
from dual;
2. substr()
- ๋ฌธ์์ด ์ถ์ถ ํจ์
- varchar2 substr(์ปฌ๋ผ, ์์์์น, ๊ฐ์ ธ์ฌ ๋ฌธ์ ๊ฐ์)
- varchar2 substr(์ปฌ๋ผ, ์์์์น)
- โ
โ
โ
SQL ์ธ๋ฑ์ค > 1๋ถํฐ ์์
select
name,
substr(name, 1, 1) as "์ฑ",
substr(name, 2) as "์ด๋ฆ",
ssn,
substr(ssn, 1, 2) as "์๋
",
substr(ssn, 3, 2) as "์์",
substr(ssn, 5, 2) as "์์ผ",
substr(ssn, 8, 1) as "์ฑ๋ณ"
from tblInsa;
3. length()
- ๋ฌธ์์ด ๊ธธ์ด ๋ฐํ ํจ์
- number length(์ปฌ๋ผ)
--์ปฌ๋ผ ๋ฆฌ์คํธ์์ ์ฌ์ฉ
select name, length(name) from tblCountry;
--์กฐ๊ฑด์ ์์ ์ฌ์ฉ
select name, length(name) from tblCountry where length(name) > 3;
select name, length(name) from tblCountry where length(name) between 4 and 6;
--์ ๋ ฌ์์ ์ฌ์ฉ
select name, length(name) from tblCountry order by length(name) desc;
- ๊ฒ์ํ ์ ๋ชฉ์ด ๊ธธ๋ฉด ์๋ผ์ ๋ง์ค์ํ ํ์(..)
select
title,
case
when length(title) >= 8 then substr(title, 1, 8) || '..'
else title
end
from tblTodo;
4. instr()
- ๊ฒ์ํจ์(์๋ฐ์ indexOf)
- ๊ฒ์์ด์ ์์น๋ฅผ ๋ฐํ
- number instr(์ปฌ๋ผ, ๊ฒ์์ด)
- number instr(์ปฌ๋ผ, ๊ฒ์์ด, ์์ ์์น)
- number instr(์ปฌ๋ผ, ๊ฒ์์ด, ์์ ์์น, -1) > lastIndexOf
- ๋ชป ์ฐพ์ผ๋ฉด 0 ๋ฐํ
select
'์๋
ํ์ธ์. ํ๊ธธ๋๋',
instr('์๋
ํ์ธ์. ํ๊ธธ๋๋', 'ํ๊ธธ๋') as r1,
instr('์๋
ํ์ธ์. ํ๊ธธ๋๋', '์๋ฌด๊ฐ') as r2,
instr('์๋
ํ์ธ์. ํ๊ธธ๋๋. ํ๊ธธ๋๋!', 'ํ๊ธธ๋') as r3,
instr('์๋
ํ์ธ์. ํ๊ธธ๋๋. ํ๊ธธ๋๋', 'ํ๊ธธ๋', 11) as r4,
instr('์๋
ํ์ธ์. ํ๊ธธ๋๋. ํ๊ธธ๋๋', 'ํ๊ธธ๋'
, instr('์๋
ํ์ธ์. ํ๊ธธ๋๋. ํ๊ธธ๋๋!', 'ํ๊ธธ๋') + length('ํ๊ธธ๋')) as r5,
instr('์๋
ํ์ธ์. ํ๊ธธ๋๋. ํ๊ธธ๋๋!', 'ํ๊ธธ๋', -1) as r6
from dual;
5. lpad(), rpad()
- left padding, right padding
- ์ฑ์ฐ๊ธฐ
- varchar2 lpad(์ปฌ๋ผ, ๊ฐ์, ๋ฌธ์)
- varchar2 rpad(์ปฌ๋ผ, ๊ฐ์, ๋ฌธ์)
select
'a',
lpad('a', 5, 'b'), -- bbba
'1',
lpad('1', 3, '0'), --001
lpad('12', 3, '0'), --012
lpad('123', 3, '0'), --123
lpad('1234', 3, '0'), --123
rpad('1', 3, '0') --100
from dual;
6. trim(), ltrim(), rtrim()
- ๊ณต๋ฐฑ ์ ๊ฑฐ
- varchar2 trim(์ปฌ๋ผ)
- varchar2 ltrim(์ปฌ๋ผ)
- varchar2 rtrim(์ปฌ๋ผ)
select
' ํ๋ ๋ ์
',
trim(' ํ๋ ๋ ์
'),
ltrim(' ํ๋ ๋ ์
'),
rtrim(' ํ๋ ๋ ์
')
from dual;
7. replace()
- ๋ฌธ์์ด ์นํ
- varchar2 replace(์ปฌ๋ผ, ์ฐพ์ ๋ฌธ์์ด, ๋ฐ๊ฟ ๋ฌธ์์ด)
**case์์ ์ฐจ์ด์
- case๋ ์ง์ ํ์ง ์์ ๊ฒฝ์ฐ null ๋ฐํ
- replace๋ ์๋ณธ๊ฐ ๋ฐํ
select
replace('ํ๊ธธ๋', 'ํ', '๊น'),
replace('ํ๊ธธ๋', '์ด', '๊น'),
replace('ํ๊ธธํ', 'ํ', '๊น')
from dual;
select
name,
continent,
case
when continent = 'AS' then '์์์'
when continent = 'EU' then '์ ๋ฝ'
when continent = 'AG' then '์ํ๋ฆฌ์นด'
end as c1,
replace(replace(replace(continent, 'AS', '์์์'), 'EU', '์ ๋ฝ'), 'AF', '์ํ๋ฆฌ์นด') as c2
from tblCountry;
8. decode()
- ๋ฌธ์์ด ์นํ
- replace์ ๋น์ทํ์ง๋ง ์ํฉ์ ๋ฐ๋ผ ํจ์ฌ ํธํจ
- varchar2 decode(์ปฌ๋ผ, ์ฐพ์ ๋ฌธ์์ด, ๋ฐ๊ฟ ๋ฌธ์์ด [, ์ฐพ์ ๋ฌธ์์ด, ๋ฐ๊ฟ ๋ฌธ์์ด] x N)
- ๋ฌธ์์ด ์กฐ์ > case์ ๊ฐ๋จํ ๋ฒ์
- ๋ฌธ์์ด์ ๋ชป ์ฐพ์ผ๋ฉด null ๋ฐํ
select
gender,
case
when gender = 'm' then '๋จ์'
when gender = 'f' then '์ฌ์'
end as g1,
replace(replace(gender, 'm', '๋จ์'), 'f', '์ฌ์') as g2,
decode(gender, 'm', '๋จ์','f', '์ฌ์') as g3
from tblComedian;
--๋จ์์ ์ฌ์์ ์
select
count(decode(gender, 'm', 1)) as "๋จ์",
count(decode(gender, 'f', 1)) as "์ฌ์"
from tblComedian;
'ํ๋ก๊ทธ๋๋ฐ ๊ณต๋ถ > Oracle' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[ex13] DDL(Data Definition Language) (0) | 2023.03.19 |
---|---|
[ex11~12] ๋ ์ง ์๊ฐ ํจ์(date time function), ํ๋ณํ ํจ์(casting function) (0) | 2023.03.19 |
[ex08~09] ์ง๊ณํจ์(aggregation function), ์ํ ํจ์(numerical_function) (0) | 2023.03.19 |
[ex04~07] operator, where, order by (0) | 2023.03.19 |
[ex01~03] sql, datatype, select (0) | 2023.03.19 |