20220221_01_scott.sql / 오라클 6일 차
CONCAT()
- 문자열을 결합하는 기능을 가진 함수 CONCAT()
- 오로지 2개의 문자열만 결합시켜줄 수 있다.
- 내부적으로 형 변환이 일어나며 결합을 수행하게 된다.
- CONCAT()은 문자열과 문자열을 결합시켜 주는 함수이지만
- 내부적으로 숫자나 날짜를 문자로 바꾸어주는 과정이 포함되어 있다.
SUBSTR() 추출 갯수 기반 / SUBSTRB() 추출 바이트 기반
SELECT ENAME "COL1"
, SUBSTR(ENAME, 1, 2) "COL2"
FROM EMP;
--> 문자열을 추출하는 기능을 가진 함수
-- 첫 번째 파라미터 값은 대상 문자열(추출의 대상, TARGET)
-- 두 번째 파라미터 값은 추출을 시작하는 위치(인덱스는 1부터 시작)
-- 세 번째 파라미터 값은 추출할 문자열의 갯수(생략 시... 끝까지)
--==>>
/*
SMITH SM
ALLEN AL
WARD WA
JONES JO
MARTIN MA
BLAKE BL
CLARK CL
SCOTT SC
KING KI
TURNER TU
ADAMS AD
JAMES JA
FORD FO
MILLER MI
*/
TBL_SAWON 테이블에서 성별이 남성인 사원만 사원번호, 사원명, 주민번호, 급여 항목을 조회한다.
- 단, SUBSTR() 함수를 활용할 수 있도록 한다.
ELECT SANO "사원번호", SANAME "사원명", JUBUN "주민번호", SAL "급여"
FROM TBL_SAWON
WHERE SUBSTR(JUBUN, 7, 1) = '1' OR SUBSTR(JUBUN, 7, 1) = '3';
--WHERE SUBSTR(JUBUN, 7, 1) = 1 OR SUBSTR(JUBUN, 7, 1) = 3;
--> 이것도 되지만 SUBSTR은 문자를 반환하기 때문에 문자로 처리하는 것이 맞다.
--==>>
/*
1001 김민성 9707251234567 3000
1005 오이삭 9805161234567 4000
1007 박한이 0204053234567 1000
1008 선동렬 6803171234567 1500
1011 남주혁 0506073234567 2600
1012 남궁민 0208073234567 2600
1013 남진 6712121234567 2200
*/
SELECT SANO "사원번호", SANAME "사원명", JUBUN "주민번호", SAL "급여"
FROM TBL_SAWON
WHERE SUBSTR(JUBUN, 7, 1) IN ('1', '3');
--==>>
/*
1001 김민성 9707251234567 3000
1005 오이삭 9805161234567 4000
1007 박한이 0204053234567 1000
1008 선동렬 6803171234567 1500
1011 남주혁 0506073234567 2600
1012 남궁민 0208073234567 2600
1013 남진 6712121234567 2200
*/
LENGTH() 글자 수 / LENGTHB() 바이트 수
SELECT ENAME "COL1"
, LENGTH(ENAME) "COL2"
, LENGTHB(ENAME) "COL3"
FROM EMP;
--==>>
/*
SMITH 5 5
ALLEN 5 5
WARD 4 4
JONES 5 5
MARTIN 6 6
BLAKE 5 5
CLARK 5 5
SCOTT 5 5
KING 4 4
TURNER 6 6
ADAMS 5 5
JAMES 5 5
FORD 4 4
MILLER 6 6
*/