숫자, 문자 처리 함수

2016. 9. 28. 14:23Programming/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(-10FROM DUAL;
        결과: 10
 
     b. ROUND() //반올림
i. SELECT 34.5678, ROUND(34.5678FROM DUAL;
1의 자리로 반올림, ROUND(숫자, 0)과 동일
결과: 35
ii. SELECT 34.5678, ROUND(34.56782FROM DUAL;
11/1021/10031/1000
결과: 34.57
iii. SELECT 34.5678, ROUND(34.5678-1FROM DUAL;
-110-2100-31000
결과: 30
 
     c. FLOOR() //내림
   SELECT 34.5678, FLOOR(34.5678FROM DUAL;
   TRUNC(숫자, 0)과 동일
결과: 34
   
     d. TRUNC() //특정 자릿수 내림
   사용법은 ROUND()와 동일
SELECT 34.5678, FLOOR(34.56782FROM DUAL;
결과: 34.56
 
     e. MOD() //나머지
   SELECT MOD(27,2), MOD(27,5), MOD(27,7FROM 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;
결과: 618
 
f. SUBSTR() //문자를 잘라서 추출(한글 1Byte)
SUBSTR(대상, 시작 위치, 추출할 개수)
ex) SELECT SUBSTR(‘오라클’, 12FROM DUAL;
결과: 오라
*시작 위치가 음수면 끝에서부터 시작
ex) SELECT SUBSTR(‘오라클’, -22FROM DUAL;
결과: 라클
 
5. 문제2)
직급이 ‘manager’인 사원을 소문자로 검색하세요.
SELECT LOWER(JOB) FROM EMP WHERE JOB=’MANAGER’;
 
6. 문제3)
사원의 이름, 입사년도, 입사한 달을 출력하세요.
SELECT ENAME, SUBSTR(HIREDATE, 12) YEAR, SUBSTR(HIREDATE, 42) MON FROM EMP; //각각 YEAR, MON으로 표시되도록
 
7. 문제4)
9월에 입사한 사원을 검색하세요.
SELECT ENAME FROM EMP WHERE SUBSTR(HIREDATE, 42)=09;
 
8. 문제5)
81년도에 입사한 직원을 검색하세요.
.  
SUBSTR(), 연산자, BETWEEN 3가지 경우를 만드세요.
 
<SUBSTR>
SELECT ENAME FROM EMP WHERE 
SUBSTR(HIREDATE, 12)=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, -11)=’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