본문 바로가기

SQL(쿼리)11

컬럼 중 NULL이 포함되어 있을 때 SUM의 결과값은? 컬럼내 , 컬럼 간 SUM 수행 시 NULL이 포함되어 있을 때 어떻게 결과값이 나오는지 정리해보겠습니다. 테스트 테이블은 아래와 같습니다. 테이블 A C1 C2 C3 10 20 NULL 15 NULL NULL 50 70 20 간단히 위의 테이블을 만드는 쿼리입니다. with A as ( select 10 as c1,20 as c2,null as c3 from dual union all select 15,null,null from dual union all select 50,70,20 from dual ) [이 부분에 쿼리 작성] 그럼 제가 테스트해본 쿼리를 아래에 적어 놓겠습니다. 해당 쿼리의 값들은 각각 결과값이 어떻게 될까요? 1번 select sum(c2) from A 2번 select sum(c.. 2022. 3. 10.
Decode 함수와 형 변환 Oracle의 내장함수이며, 값을 비교해서 원하는 값으로 치환하게 해주는 함수입니다. Decode함수를 사용하다보니 형변환이 어떻게 일어나는지 궁금해졌고, 형변환에 대해서 잘 몰라서 문제가 되었던 적도 있엇습니다. 아래의 Oracle 문서에 보면 잘 나와 있습니다. 우선적으로 DECODE의 형식은 DECODE(expr,search,result,default) 형식이고, expr을 search와 비교해서 맞으면 result를 반환하고 아니면 default를 반환하는 함수입니다. 오라클은 첫번째 search값에 따라서 자동적으로 변환한다고 되어 있습니다. 즉 result값에 따라 같은 데이터타입으로 값이 반환되는 것입니다. first result값이 char나 null이면 자동적으로 결과값은 VARCHAR2.. 2021. 12. 29.
Oracle RANK 함수 순위를 구하게 해주는 함수입니다. RANK() OVER() : 동일 순위인 경우 1,1,3 형식으로 출력 ROW_NUMBER() OVER() 동일순위인 경우 1,2,3 형식으로 출력 DENSE_RANK() OVER() 동일 순위인 경우 1,1,2 형식으로 출력 사용법 SELECT 문에서 사용할 수 있음 OVER() 내에서 partition by 절과 order by 절 사용 가능 예제 EMP 테이블에서 부서 번호(DEPTNO)별로 부서 내에서 급여가 가장 많은 순서대로 보여주는 쿼리를 작성하세요 SQL> select empno,deptno,sal,rank() over (partition by deptno order by sal desc) as seq from emp; EMPNO DEP SAL SEQ --.. 2021. 7. 6.
실행계획 확인하기,실제 실행계획 확인하기 실행계획을 확인하는 방법에는 여러가지가 있습니다. 그 중에서 간단하게 확인할 수 있는 방법을 포스팅하겠습니다. 실행계획 확인하기 1.쿼리 수행시 explain plan for 적기 해당 명령문을 포함하여 쿼리를 실행하면 결과값이 나오지 않고, statement processed라는 명령어가 나옵니다. 이 명령어는 SQL의 예상 실행계획을 만들어서 PLAN 테이블에 저장하기만 합니다. PLAN테이블에 저장된 실행계획은 DBMS_XPLAN.DISPLAY명령어를 사용해서 확인 할 수 있습니다. SQL> explain plan for select * from emp where employee_id = 100; Statement Processed. SQL Execution Time > 00:00:00.000 2... 2020. 12. 22.