๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
ORACLE/SQL

[ORACLE] ์ˆซ์žํ•จ์ˆ˜ ๊ธฐ๋ณธ ์‚ฌ์šฉ :: ๋งˆ์ด์ž๋ชฝ

by ๐ŸŒปโ™š 2019. 9. 10.

ORACLE ์ˆซ์žํ•จ์ˆ˜ ๊ธฐ๋ณธ ์‚ฌ์šฉ

์˜ค๋ผํดDB์—์„œ ์ž์ฃผ ์‚ฌ์šฉํ•˜๋Š” ์ˆซ์ž ํ•จ์ˆ˜์— ๋Œ€ํ•œ ์ •๋ฆฌ์ด๋‹ค.

ํ•ด๋‹น๊ธ€์—์„œ๋Š” Oracle 11g ๋ฒ„์ „์„ ์‚ฌ์šฉํ•˜๊ณ  ํŽธ์˜๋ฅผ ์œ„ํ•ด DUAL ๊ฐ€์ƒ ํ…Œ์ด๋ธ”์„ ์‚ฌ์šฉํ•˜์—ฌ ์‹ค์Šตํ–ˆ์Šต๋‹ˆ๋‹ค.
DUAL ํ…Œ์ด๋ธ”์€ ๊ฐ€์ƒํ…Œ์ด๋ธ”๋กœ ํ…Œ์ด๋ธ”์˜ ์‚ฌ์šฉ์ด ํ•„์š” ์—†์„๋•Œ ์‚ฌ์šฉ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.


ABS ํ•จ์ˆ˜

์ ˆ๋Œ€๊ฐ’์„ ์ถœ๋ ฅํ•ด์ฃผ๋Š” ํ•จ์ˆ˜์ด๋‹ค.
๋ช…๋ น : SELECT ABS([์ˆซ์ž]) FROM [ํ…Œ์ด๋ธ”];

QUERY

1
SELECT ABS(-500), ABS(500FROM DUAL;
cs


RESULT





SIGN ํ•จ์ˆ˜

SIGN ํ•จ์ˆ˜๋Š” ํ•ด๋‹น ๊ฐ’์˜ ๋ถ€ํ˜ธ๋ฅผ ์ˆซ์žํ˜•ํƒœ๋กœ ์•Œ๋ ค์ค€๋‹ค.
1 : ์–‘์ˆ˜
0 : 0
-1 : ์Œ์ˆ˜
๋ช…๋ น : SELECT SIGN([์ˆซ์ž]) FROM [ํ…Œ์ด๋ธ”];


QUERY

1
SELECT SIGN(-500), SIGN(500), SIGN(0FROM DUAL;
cs


RESULT




POWER ํ•จ์ˆ˜

์ œ๊ณฑ๊ฐ’์„ ๊ตฌํ•ด์ฃผ๋Š” ํ•จ์ˆ˜์ด๋‹ค.

๋ช…๋ น : SELECT POWER([์ˆซ์ž],[์ œ๊ณฑ์ˆ˜]) FROM [ํ…Œ์ด๋ธ”];

QUERY

1
SELECT POWER(2,10FROM DUAL;
cs

RESULT




MOD ํ•จ์ˆ˜

๋‚˜๋ˆˆ ํ›„ ๋‚˜๋จธ์ง€ ๊ฐ’์„ ๊ตฌํ•ด์ฃผ๋Š” ํ•จ์ˆ˜์ด๋‹ค.

๋ช…๋ น : SELECT MOD([์ˆซ์ž],[๋‚˜๋ˆ”์ˆ˜]) FROM [ํ…Œ์ด๋ธ”];

QUERY

1
SELECT MOD(9,2), MOD(8,3FROM DUAL;
cs


RESULT




SQRT ํ•จ์ˆ˜

์ œ๊ณฑ๊ทผ์„ ๊ตฌํ•ด์ฃผ๋Š” ํ•จ์ˆ˜์ด๋‹ค.

๋ช…๋ น : SELECT SQRT([์ˆซ์ž]) FROM [ํ…Œ์ด๋ธ”];

QUERY

1
SELECT SQRT(16), SQRT(15FROM DUAL;
cs


RESULT




CEIL ํ•จ์ˆ˜

์ •์ˆ˜ ๊ธฐ์ค€์œผ๋กœ ์˜ฌ๋ฆผ์„ ํ•ด์ฃผ๋Š” ํ•จ์ˆ˜์ด๋‹ค. ์†Œ์ˆ˜์  ์ž๋ฆฌ์ˆ˜๋ฅผ ์„ ํƒํ•˜์ง€ ์•Š๊ณ  ์ •์ˆ˜๊ธฐ์ค€์œผ๋กœ ์˜ฌ๋ฆผ์„ ์ฒ˜๋ฆฌํ•œ๋‹ค.

์ฆ‰, ์†Œ์ˆ˜์— ํ•œํ•ด์„œ ์‚ฌ์šฉ์ด๊ฐ€๋Šฅํ•˜๋‹ค.

๋ช…๋ น : SELECT CEIL([์†Œ์ˆ˜]) FROM [ํ…Œ์ด๋ธ”];


QUERY

1
SELECT CEIL(123.456), CEIL(123.567FROM DUAL;
cs


RESULT




FLOOR

CEIL ํ•จ์ˆ˜์™€๋Š” ๋ฐ˜๋Œ€๋กœ ์ •์ˆ˜ ๊ธฐ์ค€์œผ๋กœ ๋‚ด๋ฆผ์„ ํ•ด์ฃผ๋Š” ํ•จ์ˆ˜์ด๋‹ค. ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ์†Œ์ˆ˜์— ํ•œํ•ด์„œ ์‚ฌ์šฉ์ด ๊ฐ€๋Šฅํ•˜๋‹ค.
๋ช…๋ น : SELECT FLOOR([์†Œ์ˆ˜]) FROM [ํ…Œ์ด๋ธ”];


QUERY

1
SELECT FLOOR(123.456), FLOOR(123.567FROM DUAL;
cs

RESULT




ROUND ํ•จ์ˆ˜

๋ฐ˜์˜ฌ๋ฆผ์„ ํ•ด์ฃผ๋Š” ํ•จ์ˆ˜์ด๋‹ค. n๋ฒˆ์งธ ์ž๋ฆฌ๊นŒ์ง€ ๊ฒฐ๊ณผ๊ฐ€ ๋‚˜์˜ค๋„๋ก ๋ฐ˜์˜ฌ๋ฆผ์„ ํ•œ๋‹ค.

n๋ฒˆ์งธ ์ž๋ฆฌ์—๋Š” ์Œ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜๊ฒŒ๋˜๋ฉด ์ผ์ž๋ฆฌ : 0, 10์ž๋ฆฌ : -1, 100์ž๋ฆฌ : -2 ์—์„œ ๋ฐ˜์˜ฌ๋ฆผ์„ ํ•œ๋‹ค. ์ƒ๋žตํ•œ๋‹ค๋ฉด 0์œผ๋กœ ๊ฐ„์ฃผํ•˜๊ณ  ๋ฐ˜์˜ฌ๋ฆผ์„ ํ•œ๋‹ค.

๋ช…๋ น : SELECT ROUND([์ˆซ์ž],[n๋ฒˆ์งธ ์ž๋ฆฌ]) FROM [ํ…Œ์ด๋ธ”];


QUERY

1
SELECT ROUND(0.515), ROUND(0.156,1), ROUND(0.152,2FROM DUAL;
cs

RESULT




TRUNC ํ•จ์ˆ˜

๋ฐ˜์˜ฌ๋ฆผ์ด๋ž‘์€ ์กฐ๊ธˆ ๋‹ค๋ฅด๊ฒŒ n๋ฒˆ์งธ ์ž๋ฆฌ๊นŒ์ง€๋งŒ ์ถœ๋ ฅํ•˜๊ณ  ๋‚˜๋จธ์ง€๋Š” ์ž˜๋ผ ๋ฒ„๋ฆฐ๋‹ค. ์†Œ์ˆ˜์  ์•„๋ž˜๊ฐ€ ์•„๋‹ˆ๋ฉด n๋ฒˆ์งธ ์ž๋ฆฌ๊นŒ์ง€๋Š” 0์œผ๋กœ ํ‘œ์‹œ๋œ๋‹ค.

ROUND์™€ ๋งˆ์ฐฌ์ž๊ธฐ๋กœ n๋ฒˆ์งธ ์ž๋ฆฌ๊นŒ์ง€ ์Œ์ˆ˜๋„ ์‚ฌ์šฉ๊ฐ€๋Šฅํ•˜๋‹ค. 

๋ช…๋ น : SELECT TRUNC([์ˆซ์ž],[n๋ฒˆ์งธ ์ž๋ฆฌ]) FROM [ํ…Œ์ด๋ธ”];


QUERY

1
2
3
4
5
6
SELECT 
    TRUNC(1234.56789,-1) AS "-1์ž๋ฆฌ"
    ,TRUNC(1234.56789) AS "0์ž๋ฆฌ"
    ,TRUNC(1234.567891) AS "1์ž๋ฆฌ"
    ,TRUNC(1234.567892) AS "2์ž๋ฆฌ"
FROM DUAL;
cs


RESULT




๋Œ“๊ธ€