숫자, 문자 처리 함수
2016. 9. 28. 14:23ㆍProgramming/SQL
<숫자 함수, 문자 처리 함수>
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 | 1. DUAL TABLE 최대 칼럼 1을 가지는 테스트용 테이블 2. 숫자 함수 . ABS() 절대값을 구한다. SELECT -10, ABS(-10) FROM DUAL; 결과: 10 b. ROUND() //반올림 i. SELECT 34.5678, ROUND(34.5678) FROM DUAL; 1의 자리로 반올림, ROUND(숫자, 0)과 동일 결과: 35 ii. SELECT 34.5678, ROUND(34.5678, 2) FROM DUAL; 1: 1/10, 2: 1/100, 3: 1/1000 결과: 34.57 iii. SELECT 34.5678, ROUND(34.5678, -1) FROM DUAL; -1: 10, -2: 100, -3: 1000 결과: 30 c. FLOOR() //내림 SELECT 34.5678, FLOOR(34.5678) FROM DUAL; TRUNC(숫자, 0)과 동일 결과: 34 d. TRUNC() //특정 자릿수 내림 사용법은 ROUND()와 동일 SELECT 34.5678, FLOOR(34.5678, 2) FROM DUAL; 결과: 34.56 e. MOD() //나머지 SELECT MOD(27,2), MOD(27,5), MOD(27,7) FROM DUAL; 3. 문제1) 1. 사원 번호가 홀수인 사람들을 검색하세요. . 홀수는 2로 나눈 나머지가 1 SELECT * FROM EMP WHERE MOD(EMPNO,2) =1; 4. 문자 처리 함수 1. 대소문자 변환 . LOWER() //소문자로 변환 SELECT ENAME, LOWER(ENAME) FROM EMP; 결과: KING => king b. UPPER() : 대문자로 변환 c. INITCAP() //첫 글자만 대문자로(이니셜 Capitalize) SELECT ENAME, INITCAP(ENAME) FROM EMP; 결과: KING => King d. CONCAT() //문자를 연결 CONCAT(“HELL”,” “,”WORLD”) => HELL WORLD e. LENGTH() //문자의 길이를 반환(한글 1Byte) *LENGTHB()의 경우 한글 3Byte로 반환 SELECT LENGTHB(oracle), LENGTHB(‘오라클이다’) FROM DUAL; 결과: 6, 18 f. SUBSTR() //문자를 잘라서 추출(한글 1Byte) SUBSTR(대상, 시작 위치, 추출할 개수) ex) SELECT SUBSTR(‘오라클’, 1, 2) FROM DUAL; 결과: 오라 *시작 위치가 음수면 끝에서부터 시작 ex) SELECT SUBSTR(‘오라클’, -2, 2) FROM DUAL; 결과: 라클 5. 문제2) 직급이 ‘manager’인 사원을 소문자로 검색하세요. SELECT LOWER(JOB) FROM EMP WHERE JOB=’MANAGER’; 6. 문제3) 사원의 이름, 입사년도, 입사한 달을 출력하세요. SELECT ENAME, SUBSTR(HIREDATE, 1, 2) YEAR, SUBSTR(HIREDATE, 4, 2) MON FROM EMP; //각각 YEAR, MON으로 표시되도록 7. 문제4) 9월에 입사한 사원을 검색하세요. SELECT ENAME FROM EMP WHERE SUBSTR(HIREDATE, 4, 2)=09; 8. 문제5) 81년도에 입사한 직원을 검색하세요. . SUBSTR(), 연산자, BETWEEN 3가지 경우를 만드세요. <SUBSTR> SELECT ENAME FROM EMP WHERE SUBSTR(HIREDATE, 1, 2)=81; <연산자> SELECT * FROM EMP WHERE HIREDATE >= ‘1981/01/01’ AND HIREDATE <= ‘1981/12/31’; <BETWEEN> SELECT ENAME FROM EMP WHERE HIREDATE BETWEEN ‘1981/01/01’ AND ‘1981/12/31’; 9. 문제6) ‘E’로 끝나는 사원을 SUBSTR()으로 검색하세요. SELECT ENAME FROM EMP WHERE SUBSTR(ENAME, -1, 1)=’E’; //-1은 뒤에서부터 10. 문자처리함수2 LPAD()/RPAD() : 공백을 만들어 특정 기호로 채우는 함수 i. SELECT LPAD(‘ORACLE’, 20, ‘#’) FROM DUAL; ii. SELECT RPAD(‘ORACLE’, 20, ‘#’) FRO’M DUAL; b. LTRIM(), RTRIM() 공백 문자를 삭제하는 함수 i. SELECT LTRIM(‘ ORACLE ‘) FROM DUAL; 왼쪽 공백 제거 ii. SELECT RTRIM(‘ ORACLE ‘) FROM DUAL; 오른쪽 공백 제거 c. TRIM() 특정 문자를 잘라내는 함수 i. SELECT TRIM(‘a’ FROM ‘aaaaaOracleaaa’) FROM DUAL; ii. SELECT TRIM(‘ORACLE’) FROM DUAL; | cs |
'Programming > SQL' 카테고리의 다른 글
SQL 정리 (0) | 2017.01.31 |
---|---|
오라클 DB 구축하는 법 (0) | 2017.01.10 |
날짜 함수, 형 변환 함수 (0) | 2016.09.29 |
SELECT, 정렬 (0) | 2016.09.28 |
MySql 설치 및 DB 생성(cmd 통해) (0) | 2016.09.19 |