SQL

ORACLE ์ˆซ์ž ํ•จ์ˆ˜ (ROUND/TRUNC/CEIL/FLOOR/MOD ์‚ฌ์šฉ๋ฒ•, ์‚ฌ์šฉ์˜ˆ์ œ)

Arr_ 2022. 3. 30. 15:23

1. round

- ์ง€์ •๋œ ์ž๋ฆฌ์—์„œ ๋ฐ˜์˜ฌ๋ฆผํ•˜๋Š” ํ•จ์ˆ˜์ด๋ฉฐ, ๋ฐ˜์˜ฌ๋ฆผ ํ•  ์ž๋ฆฌ๊ฐ’์„ ์ƒ๋žตํ•  ์ˆ˜ ์žˆ์Œ (๊ธฐ๋ณธ๊ฐ’์€ 0)

- ๋ฐ˜์˜ฌ๋ฆผ ํ•  ์ž๋ฆฌ๊ฐ’์ด ์–‘์ˆ˜๋ฉด ์†Œ์ˆ˜ ์ž๋ฆฌ์—์„œ ๋ฐ˜์˜ฌ๋ฆผํ•˜๊ณ , ์Œ์ˆ˜๋ฉด ์ •์ˆ˜ ์ž๋ฆฌ์—์„œ ๋ฐ˜์˜ฌ๋ฆผํ•จ

- ๋ฐ˜์˜ฌ๋ฆผํ•  ์ž๋ฆฌ๊ฐ’ 0์€ ์†Œ์ˆ˜์  ์ฒซ์งธ ์ž๋ฆฌ์ด๋ฉฐ, 1์€ ์†Œ์ˆ˜์  ๋‘˜์งธ ์ž๋ฆฌ์—์„œ ๋ฐ˜์˜ฌ๋ฆผ, -1์€ ์ •์ˆ˜ ์ฒซ์งธ ์ž๋ฆฌ์—์„œ ๋ฐ˜์˜ฌ๋ฆผํ•จ

- ROUND(์ˆซ์ž ๋˜๋Š” ์—ด์ด๋ฆ„, ๋ฐ˜์˜ฌ๋ฆผ ํ•  ์ž๋ฆฌ๊ฐ’)

SELECT
    round(1234.5678)      AS round,
    round(1234.5678, 0)   AS round0,
    round(1234.5678, 1)   AS round1,
    round(1234.5678, 2)   AS round2,
    round(1277.5678, - 1) AS round_minus1,
    round(1277.5678, - 2) AS round_minus2
FROM
    dual;

 

 

2. trunc 

- ์†Œ์ˆ˜์ ์„ ์ ˆ์‚ญํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ํŠน์ • ์œ„์น˜๋ฅผ ์ง€์ •ํ•˜์ง€ ์•Š์œผ๋ฉด ์†Œ์ˆ˜์ ์„ ์ „๋ถ€ ์ž๋ฆ„

- ์†Œ์ˆ˜์  ์ ˆ์‚ญ ์œ„์น˜๋ฅผ ์ง€์ •ํ•˜๋ฉด ์ง€์ • ์œ„์น˜ ์ดํ›„์˜ ์ž๋ฆฌ๋ฅผ ์ ˆ์‚ญํ•จ

- TRUNC(์ˆซ์ž, ์†Œ์ˆ˜์  ์ ˆ์‚ญ ์œ„์น˜)

 

SELECT
    trunc(1234.5678)      AS trunc,
    trunc(1234.5678, 0)   AS trunc0,
    trunc(1234.5678, 1)   AS trunc1,
    trunc(1234.5678, 2)   AS trunc2,
    trunc(1234.5678, - 1) AS trunc_minus1,
    trunc(1234.5678, - 2) AS trunc_minus2
FROM
    dual;

 

 

3. ceil

- ์ˆซ์ž์˜ ์˜ฌ๋ฆผ๊ฐ’์„ ๋ฐ˜ํ™˜ํ•˜๋Š” ํ•จ์ˆ˜๋กœ, ์†Œ์ˆ˜์ ์„ ๊ฐ€์žฅ ๊ฐ€๊นŒ์šด ์ •์ˆ˜๋กœ ์˜ฌ๋ฆผํ•˜์—ฌ ๊ฐ’์„ ๋ฐ˜ํ™˜ํ•˜๊ฒŒ ๋จ

 

SELECT
    ceil(3.14),
    ceil(- 3.14)
FROM
    dual;

 

 

4. floor

- ์ˆซ์ž์˜ ๋‚ด๋ฆผ๊ฐ’์„ ๋ฐ˜ํ™˜ํ•˜๋Š” ํ•จ์ˆ˜๋กœ, ์†Œ์ˆ˜์ ์„ ๊ฐ€์žฅ ๊ฐ€๊นŒ์šด ์ •์ˆ˜๋กœ ๋‚ด๋ฆผํ•˜์—ฌ ๊ฐ’์„ ๋ฐ˜ํ™˜ํ•˜๊ฒŒ ๋จ

 

SELECT
    floor(3.14),
    floor(-3.14)
FROM
    dual;

 

 

5. mod

- ์ง€์ •๋œ ์ˆซ์ž๋ฅผ ๋‚˜๋ˆˆ ํ›„ ๋‚˜๋จธ์ง€๋ฅผ ๋ฐ˜ํ™˜ํ•จ

- MOD(a,b) : a๋ฅผ b๋กœ ๋‚˜๋ˆˆ ํ›„ ๋‚˜๋จธ์ง€๋ฅผ ๋ฐ˜ํ™˜ํ•จ

 

SELECT
    mod(15, 6),
    mod(10, 2),
    mod(11, 2)
FROM
    dual;