λ³Έλ¬Έ λ°”λ‘œκ°€κΈ°
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




λŒ“κΈ€