Oracle SQL

Oracle Sql - FUNCTION

J휘 2024. 8. 26. 18:58

<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