<ORDER BY 절>
: 실행순서가 가장 마지막인 절으로 정렬의 기준을 제시한다
SELECT 조회할 컬럼...
FROM 조회할 테이블
WHERE 조건식
ORDER BY 정렬기준될 컬럼 | 컬럼순번 [ASC | DESC] [NULLS FIRST | NULLS LAST]
# [] 는 생략 가능
[차순]
- ASC : 오름차순(작은 값으로 시작해서 값이 점점 커지는 것) -> 기본값
- DESC : 내림차순(큰값으로 시작해서 값이 점점 줄어드는 것)
[NULL 배치]
- NULLS FIRST : 정렬하고자하는 컬럼값에 NULL이 있을 경우 해당데이터 맨 앞에 배치(DESC일때 기본값)
- NULLS LAST : 정렬하고자하는 컬럼값에 NULL이 있을 경우 해당데이터 맨 마지막에 배치(ASC일때 기본값)
--전 사원의 사원명, 연봉(보너스제외) 조회(단, 연봉별 내림차순 정렬)
SELECT EMP_NAME, SALARY * 12 AS "연봉"
FROM EMPLOYEE
ORDER BY 2 DESC; -- 여기서 2의 의미는 2번째 SELECT인 연봉을 선택한 것
< 함수(FUNCTION) >
----------------------------------------------------------------------------------
[문자처리함수]
LENGTH(컬럼 | '문자열') : 해당 문자열의 글자수를 반환
LENGTHB(컬럼 | '문자열') : 해당 문자열의 바이트 수를 반환
SELECT EMP_NAME, LENGTH(EMP_NAME) AS 글자수, LENGTHB(EMP_NAME) AS "바이트 수"
FROM EMPLOYEE;
----------------------------------------------------------------------------------
[ INSTR ]
: 문자열로부터 특정 문자의 시작위치를 찾아서 반환 (결과는 NUMBER)
INSTR(컬럼 | '문자열', '찾고자하는 문자', ['찾을 위치의 시작값, 순번']) -> 결과는 NUMBER
SELECT INSTR('AABAACAABBAA', 'B', 1, 3) -- 첫번째 문자부터, 3번째 B를 찾는다
FROM DUAL;
----------------------------------------------------------------------------------
[ SUBSTR ]
: 문자열에서 특정 문자열을 추출해서 반환 (많이 쓰이는 함수)
SUBSTR(STRING, POSITION, [LENGTH])
- STRING : 문자타입 컬럼 | '문자열'
- POSITION : 문자열 추출할 시작위치 값
- LENTH : 추출할 문자 갯수(생략하면 끝까지)
SELECT SUBSTR('SHOWMETHEMONEY', 7)
FROM DUAL; -- 7번째 위치부터 끝까지 추출
◼활용문제(INSTR + SUBSTR)
--이메일의 아이디부분 추출
--사원목록에서 사원명, 이메일, 아이디 조회
SELECT EMP_NAME, EMAIL, SUBSTR(EMAIL, 1, INSTR(EMAIL, '@') - 1)
FROM EMPLOYEE;
'Oracle SQL' 카테고리의 다른 글
Oracle Sql - SELECT (0) | 2024.08.12 |
---|