숫자함수
ROUND (반올림 하여 출력)
예제 : 876.567 소수점 두번째 자리인 6에서 반올림 해서 출력
select round(876.567, 1)
from dual;
두번째 자리에서 반올림하면 소수점 첫번째 자리 값만 출력되기 때문에 1 이다.
0 은 = '.' 의 자리수를 의미한다
round(숫자, 0 ) 의 0 은 쓰나, 안쓰나 같은 값이 나온다.
문제 : 우리반 테이블에서 나이를 출력하는데 , 일의 자리에서 바로 반올림
select round(sal, 2)
from emp;
Trunc (숫자를 버리고 출력하기)
예제 : 876.567 출력, 소수점 두번짜자리인 6과 그 이후 숫자를 모두 버리고 출력
select trunc(876.567, 1)
from dual;
설명 : 소수점 이후는 지정된 자리 이후의 숫자들을 버리는 것이고, 소수점 이전은 지정된 자리를 포함해서 버리는 것이다
비식별 처리기법으로 데이터를 암호화 할때 유용하다.
문제 : 우리반 테이블에서 이름, 나이를 출력하는데 나이를 비식별 처리하여 출력 하시오
(단 출력시 20대, 30대 이런식으로 출력 되도록 하시오 )
select ename, trunc(age, -1)||'대'
from emp14;
→ -1 의 이유는 나이가 두자리 수에서 1의 자리를 버리는것이므로
버리는 수인 일의 자리를 지칭하는 단어인 ' -1 '을 작성한다.
만약 소수점 이하인 숫자들을 버리게 될때에는 양수이고 십의자리이후를 버릴때에는 음수표현인 '-2' 를 작성하면 된다.
숫자 | 8 | 7 | 6 | . | 5 | 6 | 7 | 8 |
자리 | -3 | -2 | -1 | 0 | 1 | 2 | 3 | 4 |
trunc(컬럼명, -1 )처럼 소숫점 이전 숫자를 표기할때는 -1 자리수를 버린다는의미이고
trunc (컬럼명, 1) 처럼 소숫점 이하 숫자를 표기할때는 1의 자리수는 살리고 그 이후 2의 자리부터 버린다는 의미이다.
MOD (나눈 나머지값 출력하기)
select mod(10,3)
from dual;
문제 : 테이블에서 이름과 나이 출력 후 나이가 홀수인 학생들만 출력
select ename, age
from emp14
where mod(age,2)=1;
검색조건이 나이가 홀수인 것. 따라서 where 절에 홀수를 지칭하는 sql 식을 작성해준다.
2를 나누어서 나머지 값이 1이면 홀수 이다.
'Oracle > SQL' 카테고리의 다른 글
SQL 단일행 함수 -변환함수 (To_char) 문자형으로 변환 (0) | 2021.11.19 |
---|---|
SQL 단일행 함수 - 날짜함수 (0) | 2021.11.19 |
SQL 단일행 함수 - 문자함수 (Trim, Rtrim, Ltrim) 문자잘라내기 (0) | 2021.11.19 |
SQL 단일행 함수 - 문자함수 (Replace), (Lpad, Rpad) 문자 대체하기, 특정철자를 n 개만큼 채우기 (0) | 2021.11.19 |
SQL 단일행 함수 - 문자함수 Instr (특정철자의 위치 출력) (0) | 2021.11.19 |