카테고리 없음

[SQL] SQL SELECT문, 데이터 제한 및 정렬

worri-pi 2021. 9. 6. 11:52

 

 

--일시적으로 날짜 형식 지정
ALTER SESSION SET NLS_DATE_FORMAT = 'YYYY-MM-DD';

--우선 순위 규칙
--산술 연산자 / 연결 연산자 / 비교 조건 / IS [NOT] NULL, LIKE, [NOT] IN / [NOT] BETWEEN / 같지않음 / NOT 논리 연산자 / AND 논리 연산자 / OR 논리 연산자


--LIKE
SELECT FIRST_NAME
FROM EMPLOYEES
WHERE FIRST_NAME LIKE 'S_____';

SELECT FIRST_NAME
FROM EMPLOYEES
WHERE FIRST_NAME LIKE 'S%';

--ESCAPE 문자 : '_' 혹은 '%' 를 문자로 검색하고자 할 때 사용
SELECT FIRST_NAME
FROM EMPLOYEES
WHERE FIRST_NAME LIKE 'S_\_%' ESCAPE '\';

SELECT FIRST_NAME
FROM EMPLOYEES
WHERE FIRST_NAME LIKE 'S_*_%' ESCAPE '*';

--NULL
SELECT FIRST_NAME
FROM EMPLOYEES
WHERE MANAGER_ID IS NOT NULL;

--대체 인용(Q) 연산자
SELECT DEPARTMENT_NAME || Q'[department's Manager ID:]' || MANAGER_ID
AS "DEPARTMENT AND MANAGER"
FROM DEPARTMENTS;

--IN 연산자
SELECT EMPLOYEE_ID,LAST_NAME,SALARY,MANAGER_ID
FROM EMPLOYEES
WHERE MANAGER_ID IN(100,101,102);

--NOT IN 연산자


--NOT BETWEEN 연산자
SELECT LAST_NAME,MANAGER_ID
FROM EMPLOYEES
WHERE MANAGER_ID NOT BETWEEN 100 AND 200;

--BETWEEN 연산자
SELECT LAST_NAME,MANAGER_ID
FROM EMPLOYEES
WHERE MANAGER_ID BETWEEN 100 AND 200;

--<> 연산자
SELECT LAST_NAME,MANAGER_ID
FROM EMPLOYEES
WHERE MANAGER_ID<>100 AND MANAGER_ID!=101;

--1차적으로 DEPARTMENT_ID 를 이용해 전체 사원 데이터를 오름차순으로 정렬 , 2차적으로 같은 부서에 있는 사원들에 대해 SALARY를 이용해 정렬
SELECT LAST_NAME,DEPARTMENT_ID,SALARY
FROM EMPLOYEES
ORDER BY DEPARTMENT_ID, SALARY DESC;

--행 제한
SELECT LAST_NAME,EMPLOYEE_ID,SALARY
FROM EMPLOYEES
ORDER BY EMPLOYEE_ID
FETCH FIRST 5 ROWS ONLY;

SELECT LAST_NAME,EMPLOYEE_ID,SALARY
FROM EMPLOYEES
ORDER BY EMPLOYEE_ID
OFFSET 5 ROWS FETCH NEXT 5 ROWS ONLY;

--치환 변수 (SUBSTITUTION VARIABLE): &단일 앰퍼샌드 및 &&이중 앰퍼샌드 치환을 사용한다.
SELECT EMPLOYEE_ID,LAST_NAME
FROM EMPLOYEES
WHERE EMPLOYEE_ID = &EMPLYEE_ID;

SELECT EMPLOYEE_ID,LAST_NAME
FROM EMPLOYEES
WHERE EMPLOYEE_ID = &HEY;

SELECT EMPLOYEE_ID,LAST_NAME,&SELECT
FROM EMPLOYEES
WHERE &WHERE
ORDER BY &ORDERBY;

SELECT EMPLOYEE_ID,LAST_NAME,&&1
FROM EMPLOYEES
ORDER BY &1; --&&와 &이 같아야함

728x90