SQL Server에서 조회된 데이터에 순번을 매기기 위해서는 ROW_NUMBER 함수를 사용하면 된다. ROW_NUMBER 함수는 분석 함수이기 때문에 OVER 절과 함께 사용해야 한다. ROW_NUMBER 함수와 비슷한 순위를 구할 수 있는 RANK 함수도 존재한다. 목차 순번 매기기 그룹별 순번 매기기 정렬 사용 시 주의사항 순번 매기기 SELECT ename , job , sal , ROW_NUMBER() OVER(ORDER BY sal DESC) AS rownum FROM emp WHERE job IN ('MANAGER', 'SALESMAN') ROW_NUMBER 함수는 분석 함수이기 때문에 OVER 절과 함께 사용해야 한다. OVER 절 내부 ORDER BY 절에 순번을 매길 기준 칼럼을 작성..
SQL Server에서 순위를 구하기 위해서는 RANK 함수, DENSE_RANK 함수를 사용하면 된다. 두 함수의 사용방법은 동일하지만 순번을 매기는 방법이 조금 차이가 있으니 주의해서 사용해야 한다. RANK, DENSE_RANK 함수는 분석함수이기 때문에 OVER절과 함께 사용해야 한다. 목차 순위 구하기 그룹별 순위 구하기 정렬(ORDER BY) 사용 시 주의사항 순위 구하기 RANK 함수 사용법 SELECT ename , sal , RANK() OVER(ORDER BY sal DESC) AS rank_sal FROM emp WHERE job IN ('ANALYST', 'SALESMAN') 순위함수는 OVER 절과 함께 사용해야 하며 OVER 절 내부의 ORDER BY 절에 순위 칼럼을 지정하면 ..
SQL Server에서 패턴(정규식)으로 문자열의 위치를 찾을 때는 PATINDEX 함수를 사용하면 된다. 단순 문자열로 위치를 찾을 때는 CHARINDEX 함수를 사용하면 되며, 패턴으로 문자열 위치를 찾을 때는 PATINDEX 함수를 사용하면 된다. PATINDEX 함수를 사용하면 패턴을 사용하여 숫자, 영문자, 한글, 특수문자 등을 찾을 수 있으며, 정규식과 유사한 패턴을 사용하지만 일반적인 정규식은 아니라는 것은 인지하고 있어야 한다. 목차 PATINDEX 기본 사용법 PATINDEX 와일드카드(패턴) 사용법 PATINDEX 기본 사용법 SELECT PATINDEX('%SQL%', 'Microsoft SQL Server 2022') PATINDEX('%찾을문자열%', '대상문자열') 찾을 문자열 ..
SQL Server에서 해당 날짜의 요일(weekday)을 구하거나 년, 월, 일 추출 또는 분기를 구할 때는 DATEPART 함수를 사용하면 된다. DATEPART 함수와 거의 유사한 DATENAME 함도 있으며, DATEPART 함수와 DATENAME 함수의 차이는 결과를 정수로 반환하느냐 문자열로 반환하느냐의 차이라고 생각하면 된다. (요일과 월을 추출하는 부분만 다름) 목차 날짜 요일 구하기 년, 월, 일 추출하기 시, 분, 초 추출하기 분기 구하기 일 년 기준으로 일수 구하기 일 년 기준으로 몇 주인지 구하기 [MSSQL] DATENAME 함수 사용법 SQL Server에서 날짜 형식에서 년, 월, 일을 분리하거나 해당 날짜의 요일(weekday), 분기 등을 구하기 위해서는 DATENAME 함..
오라클에서 CROSS JOIN은 교차 조인이라고 하며, 두 테이블의 모든 행이 각각 한 번씩 조인되어 모든 경우의 수를 조합한 조인 데이터가 출력된다. CROSS JOIN은 카테시안 곱 또는 카테시안 조인이라고 부르기도 한다. CROSS JOIN은 ANSI JOIN 문법이며 오라클 방식의 교차 조인과 비교는 하단의 링크를 참고하면 된다. CROSS JOIN - 기본 사용법 SELECT a.empno , a.ename , a.job , b.deptno , b.dname FROM emp a CROSS JOIN dept b CROSS JOIN은 별도의 조인 칼럼이 없고, 두 테이블의 모든 행이 서로 한 번씩 조인된다고 생각하면 된다. 하나의 행을 여러 행으로 만들고 싶을 때 사용할 수 있다. emp 테이블(4..
오라클에서 FULL OUTER JOIN은 LEFT OUTER JOIN과 RIGHT OUTER JOIN을 합쳐진 조인 방법이라고 생각하면 된다. FULL OUTER JOIN은 ANSI JOIN 문법이며 오라클 10g 이상에서 사용할 수 있다. FULL OUTER JOIN은 자주 사용하는 조인 방법은 아니지만 개념을 이해하고 있으면 많은 도움이 될 수 있을 것이다. FULL OUTER JOIN - 기본 사용법 SELECT a.empno , a.ename , a.job , b.deptno , b.dname FROM emp a FULL OUTER JOIN dept b ON a.deptno = b.deptno 두 개의 테이블이 조인이 되면 조인된 데이터는 한 행으로 출력하고, 각 테이블에서 조인되지 않은 데이터는..
오라클에서 RIGHT OUTER JOIN은 아우터 조인(외부조인)에서 사용하는 방법 중 하나이다. RIGHT OUTER JOIN은 OUTER 키워드를 생략하고 RIGHT JOIN으로 사용하기도 한다. RIGHT OUTER JOIN은 ANSI JOIN 문법이며 오라클 10g 이상에서 사용할 수 있다. 일반적인 오라클 조인과 ANSI JOIN의 비교는 하단의 링크를 참고하면 된다. RIGHT OUTER JOIN을 학습하기 전에 LEFT OUTER JOIN을 먼저 학습하면 이해하기 쉬울 것이다. 목차 RIGHT OUTER JOIN - 기본 사용법 RIGHT OUTER JOIN - 조인 칼럼이 여러 개인 경우 RIGHT OUTER JOIN - 조인 테이블이 여러 개인 경우 ※ 예제의 emp 테이블은 설명을 위해..
오라클에서 LEFT OUTER JOIN은 아우터 조인(외부조인)에서 가장 많이 사용하는 방법 중 하나이다. LEFT OUTER JOIN은 OUTER 키워드를 생략하고 LEFT JOIN으로 사용하기도 한다. 아우터 조인은 조인할 테이블에 데이터가 없어도 기준 테이블의 데이터는 모두 출력되는 조인 방법이다. LEFT OUTER JOIN은 ANSI JOIN 문법이며 오라클 10g 이상에서 사용할 수 있다. 일반적인 오라클 조인과 ANSI JOIN의 비교는 하단의 링크를 참고하면 된다. 목차 LEFT OUTER JOIN - 기본 사용법 LEFT OUTER JOIN - 조인 칼럼이 여러 개인 경우 LEFT OUTER JOIN - 조인 테이블이 여러 개인 경우 ※ 예제의 emp 테이블은 설명을 위해 인위적으로 만든..
오라클에서 INNER JOIN은 일반적으로 부르는 조인을 의미한다. INNER JOIN은 ANSI JOIN 문법이며 대부분의 데이터베이스에서 동일하게 사용할 수 있는 쿼리문이다. ANSI JOIN은 오라클 10g부터 사용할 수 있으며, 일반적인 오라클 조인과 ANSI JOIN 비교는 하단의 링크를 참고하면 된다. 목차 INNER JOIN - 기본 사용법 INNER JOIN - 조인 칼럼이 여러 개인 경우 INNER JOIN - 조인 테이블이 여러 개인 경우 ※ 예제의 emp 테이블은 설명을 위해 인위적으로 만든 테이블이며 하단의 첨부파일을 참고하면 된다. INNER JOIN - 기본 사용법 SELECT a.empno , a.ename , a.job , a.deptno , b.dname FROM emp a..
오라클에서 수치값이 NULL인 경우 0으로 처리하여 표시하기 위해서는 NVL 함수를 사용하면 된다. 그리고 SUM 함수를 사용하여 합산할 때 결과가 NULL인 경우 0으로 표시할 때도 NVL 함수를 사용할 수 있다. 집계함수(SUM, AVG, MIN, MAX 등)는 연산할 칼럼의 값이 NULL인 경우 해당 행은 제외하고 처리를 하기 때문에 필요할 경우 꼭 NVL 함수로 치환 후 연산을 해야 한다. NULL이면 0 처리 방법 SELECT NULL , NVL(NULL, 0) --NULL을 0으로 치환 FROM dual NVL 함수를 사용하여 NULL을 0으로 치환할 수 있다. SELECT empno , ename , comm , NVL(comm, 0) AS nvl_comm FROM emp WHERE job ..