C#,Delphi,Oracle,MSSQL 개발자블로그
● 다중열 서브 쿼리 여러개의 컬럼을 검색하는 서브 쿼리 - 서브 쿼리의 SELECT 문에 여러 개의 컬럼을 검색한다. - 반드시 비교 대상 컬럼과 1:1 대응돼야 한다. - 다중 열 서브쿼리는 주로 IN을 사용하지만 '='사용도 가능하다. IN의 사용이 권장된다. Ex. 각 부서별로 최소 급여를 받는 사원의 정보를 검색. (Pairwise 방식) SELECT dept_ID, employeeID, first_name, salary FROM emp WHERE (dept_ID, salary) IN (SELECT dept_ID, MIN(salary) FROM emp GROUP BY dept_ID) ● 다중 열 서브쿼리에서의 열 비교 - Pairwise 방식. SELECT empno, sal, deptno FR..
- 서브쿼리를 작성할 수 있는 부분 1. WHERE 절 2. HAVING 절 3. FROM 절 서브쿼리 = 중첩SELECT = 부속 SELECT = 내부SELECT - 서브쿼리는 괄호로 둘러싸야 한다. - 서브쿼리는 비교연산자의 오른쪽에 있어야 한다. - 서브쿼리에 ORDER BY 절을 포함하면 안된다. (SELECT문장에 대해서는 오직 하나의 ORDER BY를 가질 수 있으며, SELECT문장의 제일 마지막에 있어야 한다.) ● 서브쿼리의 유형 1. 단일 행 서브쿼리 : 내부 SELECT 문장으로부터, 오직 하나의 행만을 리턴하는 질의이다. 단일 행 비교연산자(비교대상이 1개의 결과 리턴)를 사용한다. =, >, >=, SELECT ename, sal, deptno FROM emp WHERE sal I..
DISTINCT와 GROUP BY절 - DISTINCT와 GROUP BY 개념에 대해서 좀 더 이해를 해보자. - DISTINCT는 주로 UNIQUE(중복을 제거)한 컬럼이나 레코드를 조회하는 경우 사용한다. - GROUP BY는 데이터를 그룹핑해서 그 결과를 가져오는 경우 사용한다. - 하지만 두 작업은 조금만 생각해보면 동일한 형태의 작업이라는 것을 쉽게 알 수 있으며, 일부 작업의 경우 DISTINCT로 동시에 GROUP BY로도 처리될 수 있는 쿼리들이 있다. - 두 기능 모두 Oracle9i까지는 sort를 이용하여 데이터를 만들었지만, Oracle10g 부터는 모두 Hash를 이용하여 처리한다. - 그래서 DISTINCT를 사용해야 할지, GROUP BY를 사용해서 데이터를 조회하는 것이 좋을..