띵유로그

[DB] ORACLE 문법 VS SQLSERVER 문법 본문

데이터베이스

[DB] ORACLE 문법 VS SQLSERVER 문법

띵유 2022. 10. 11. 11:19
반응형

주로 SQL SERVER 를 사용하지만, ORACLE 책이 너무 자세히 쓰여있거 오라클 책으로 공부중이다.

 

여기서 내부 동작 원리 차이로 문법이 달라지는 경우가 있어 잊지 않기 위해 여기에 기록해둔다.


1. TOP (10)  / WHERE ROWNUM<=10

오라클은 데이터를 하나씩 가져오면서 ROWNUM을 매기고 WHERE 조건에 맞으면 출력대상에 포함시킨다.
따라서 WHERE조건으로 출력할 개수를 정해야한다.

- 이때 WHERE ROWNUM=2 와 같이 조건을 주면, 아무것도 출력되지 않는다.
처음에 가져오는 ROW는 ROWNUM=1 일텐데, 조건 불충족으로 바로 종료되기 때문!
- 원하는 조건으로 ORDER BY 후 N 개의 결과를 반환하려면 INNER QUERY를 사용해야한다.

자세한 내용은 아래 포스팅을 확인하자. 

https://jhnyang.tistory.com/454

 

[오라클 SQL] ROWNUM - 특정 개수의 행만 조회하기, 행 번호 매기기 rownum = 2, order by rownum

[데이터베이스 SQL 완전정복 목차] 안녕하세요~ 양햄찌 블로그 주인장입니다. 운영체제, 리눅스유닉스 카테고리에 이어 데이터베이스 파트도 차근차근 이어가보려고 하는데 갈길이 머네요 ㅎㅎ

jhnyang.tistory.com

2. 2개 이상 테이블 중 공통 된 원소 조회
- MSSQL : join 
- Orcale : intersect

SELECT empno, ename, job, sal, deptno
from emp
where (ename, job, sal) in (
	select ename, job, sal from emp
    intersect
    select ename, job, sal from V)


3. 2개 이상 테이블 중 차집합 조회
- MSSQL : ID로 join 후 Null값인 대상 select  혹은 EXCEPT
- ORACLE : MINUS

SELECT empno, ename, job, sal, deptno
from emp
MINUS
SELECT empno, ename, job, sal, deptno
from V
반응형
Comments