-
SQL 함수(문자함수)SQL 2023. 4. 12. 21:07
◆ 문자함수
- UPPER: 알파벳 값을 대문자로 변환
- LOWER: 알파벳 값을 소문자로 변환
- INITCAP: 각 단어의 첫번째 문자를 대문자로 변환, 그 뒤는 소문자로 변환
SELECT 'bigdata' COL1 , UPPER('bigdata') COL2 SELECT ENAME COL1 , LOWER(ENAME) COL2 WHERE DPTNO = 30; SELECT ENAME COL1 , INITCAP(ENAME) COL2 FROM EMP WHERE DEPTNO = 30;
- CONCAT: 두 문자열을 하나로 연결(||과 동일해서 자주 사용 안함)
- REPLACE: 첫번째 인자 값에서 두번째 인자값에 해당하는 문자를 세번째 인자 값으로 변경(세번째 인자값이 없으면 NULL로 변경)
- SUBSTR/SUBSTRING: 문자열 중 원하는 부분만 선택(문자수 기준)(세번째 인자 값이 없으면 문자열 끝까지)
SELECT JOB||ENAME COL1 , CONCAT(JOB, ENAME) COL2. #COL1=COL2 , REPLACE(JOB, 'MAN', '*') COL3 FROM EMP WHERE DEPTNO = 30; SELECT ENAME COL1 , SUBSTR(ENAME, 1, 3) COL2 FROM EMP WHERE DEPTNO = 30;
- LENGTH: 문자열 길이(문자 수 기준)
- LPAD: 첫째 인자에 셋째 인자를 둘째 인자 길이(Byte)가 될 때까지 왼쪽부터 채움
- RPAD: 오른쪽부터 채움
SELECT ENAME COL1 , LENGTH(ENAME) COL2 FROM EMP WHERE LENGTH(ENAME) >= 6; SELEFT SAL COL1 , LPAD(ENAME, 8, '*') COL2 , RPAD(ENAME, 8, '*') COL3
- LTRIM: 왼쪽부터 해당 문자 제거. 인자 값 없을 시 공백 제거
- RTRIM: 오른쪽부터 제거
- TRIM: 양쪽의 해당 문자 제거 or (LEADING(왼쪽) | TRAILING(오른쪽) | BOTH(양쪽) FROM)
- ASCII: 특정 값의 아스키코드 리턴
- CHR: 아스키코드 값으로 문자 리턴
- POSITION: 문자열에서 특정 문자의 위치 리턴(찾는 값이 없으면 0리턴)
◆ 연습문제
1. 사원명에 대/소문자가 혼용되어 입력되었다고 가정하고, LIKE를 사용하여 두번째 문자에 C가 포함된 사원정보를 출력하는 SQL 작성하기 SELECT EMPNO , UPPER(ENAME) , JOB, MGR, HIREDATE, SAL, COMM, DEPTNO FROM EMP WHERE UPPER(ENAME) LIKE '_C%'; 2. 사원명의 길이가 5자 이상이고 부서번호가 20인 SQL(ENAME_1은 양쪽 문자에서 'S'제거한 결과) SELECT ENAME , TRIM(BOTH 'S' FROM ENAME) ENAME_1 FROM EMP WHERE LENGTH(ENAME) >=5 AND DEPTNO = 20; 3. 사원명의 3번째 글자가 'L'인 사원정보를 출력하는 SQL - LIKE 사용 SELECT * FROM EMP WHERE ENAME LIKE '__L%'; - LIKE 미사용 SELECT * FROM EMP WHERE SUBSTR(ENAME, 3, 1) = 'L'; 4. 직무의 2번째 글자가 'A'인 데이터를 출력하고, 직업의 'MAN'을 'WOMAN'으로 변경하여 출력 SELECT EMPNO, ENAME , REPLACE(JOB, 'MAN', 'WOMAN) JOB , SAL FROM EMP WHERE SUBSTR(JOB, 2, 1) = 'A';
'SQL' 카테고리의 다른 글
SQL 함수(CASE 문) (0) 2023.04.13 SQL 함수(명시적 유형변환 함수) (0) 2023.04.12 SQL 함수(숫자 함수) (0) 2023.04.12 SELECT 문(LIMIT, OFFSET) (0) 2023.04.12 SELECT문 기초 (0) 2023.03.26