728x90
반응형
단일행 함수(SINGLE ROW FUNCTION)
- 한개의 입력 한개의 출력
- SELECT, WHERE, ORDER BY, UPDATE의 SET 절에서 사용 가능
- 조회되는 컬럼 값이 같아야한다.
1 2 | SELECT SUM(SAL) FROM EMP; | cs |
1 2 | SELECT MAX(SAL), MIN(SAL) FROM EMP; | cs |
다중행 함수(Mutible ROW FUNCTION)
- 일반적인 컬럼과 같이 조회가 불가하다.
- 여러 행을 바탕으로 1개의 결과값을 도출
- 여러행이 결과로 나오는 열은 사용불가
1 2 | SELECT SAL, MAX(SAL) FROM EMP; | cs |
위 쿼리는 실행안된다.
조회되는 컬럼 값이 같아야한다.
1 2 | SELECT COUNT(EMPNO), COUNT(ENAME), COUNT(COMM) FROM EMP; | cs |
1 | SELECT COUNT(*) FROM EMP; | cs |
혹시라도 이런 쿼리로 숫자를 세려고한다면 절대 이렇게 하지말자.
NULL 값은 카운트 안되서 원하는 값이 안나온다. 실무가면 싸대기 맞을만한 행동이다.
1 2 | SELECT AVG(SAL), ROUND(AVG(SAL), 2) FROM EMP; | cs |
1 | SELECT 10 + 20 FROM DUAL; | cs |
1 | SELECT 10 + 'ORACLE' FROM DUAL; | cs |
1 | SELECT 'JAVA' + 'ORACLE' FROM DUAL; | cs |
문자열 + 문자열 에러뜬다. 숫자 + 문자열도 에러뜬다
1 | SELECT 'JAVA' || 'ORACLE' FROM DUAL; | cs |
이렇게 해줘야 한다.
1 | SELECT 10 + NULL FROM DUAL; | cs |
연산에 NULL이 포함되면 결과는 무조건 NULL이다.
1 | SELECT AVG(COMM), SUM(COMM), COUNT(COMM) FROM EMP; | cs |
1 | SELECT SUM(COMM) / COUNT(NVL(COMM,0)) FROM EMP; | cs |
다중행함수 (그룹함수) 사용시 NULL을 많이 신경쓰자.
728x90
반응형
'✨ DBMS > Oracle' 카테고리의 다른 글
[SQL] 제약조건 (CONSTRAINT)가 뭘까? 어떻게 사용할까? (0) | 2023.03.02 |
---|---|
[Oracle / SQL] 조인(JOIN) (0) | 2023.02.27 |
[Oracle / SQL] 많이 쓰는 함수 NVL , NVL2 , DECODE , CASE (0) | 2023.02.26 |
[Oracle / SQL] SQL INSERT, UPDATE, DELETE (0) | 2023.02.23 |
[Oracle / SQL] 더미테이블(DUAL)과 유용한 숫자 함수 예제 2 (0) | 2023.02.21 |
댓글