빅데이터/SQL

단일행 함수 (문자형 & 숫자형&세션포맷)

예캉 2017. 12. 29. 10:59
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
--단일행 함수 계속
SELECT 'SSESS',LTRIM('SSESS','S'),RTRIM('SSESS','S'),TRIM('S' FROM 'SSESS')
FROM dual;
 
SELECT 'SSESS', LTRIM('SSESS','S'),RTRIM('SSESS','S'),LTRIM(RTRIM('SSESS','S'),'S')
FROM dual;
 
 
SELECT 'SSESS', TRIM(LEADING 'S' FROM 'SSESS')
              , TRIM(TRAILING 'S' FROM 'SSESS'--뒤에 있는 S
              , TRIM(BOTH 'S' FROM 'SSESS')
              , TRIM('S' FROM 'SSESS')
FROM dual;
 
SELECT 'xxyXYxy',LTRIM('xxyXYxy','xy')
                ,RTRIM('xxyXYxy','xy')
FROM dual;
 
-- 숫자형 함수
SELECT 45.926, ROUND(45.926,2)
             , ROUND(45.926)
             , ROUND(45.926,-2)
FROM dual;
 
-- 세션의 각종 설정 및 포맷(형식) 확인하기
SELECT * 
FROM NLS_SESSION_PARAMETERS; -- 뷰다. 
 
-- 데이터베이스가 실행중인 컴퓨터의 시간
SELECT SYSDATE FROM dual; -- sysdate는 함수
 
-- 사원의 입사일자
SELECT last_name,hire_date
FROM employees; --session의 날짜 형식에 맞게 나오고 있다.
 
-- 현재 세션의 날짜 형식 변경하기
ALTER SESSION SET NLS_DATE_FORMAT = 'DD-MONTH-YY HH24_MI_SS';
 
-- 세션의 날짜 포맷 확인하기
SELECT *
FROM NLS_SESSION_PARAMETERS
WHERE parameter='NLS_DATE_FORMAT';
 
--세션의 언어 변경하기
ALTER SESSION SET NLS_LANGUAGE ='american';
 
-- 데이터베이스가 실행중인 컴퓨터의 시간
SELECT SYSDATE FROM dual;
 
-- 세션의 TERRITORY 변경
ALTER SESSION SET NLS_TERRITORY = 'korea';
 
SELECT *
FROM NLS_SESSION_PARAMETERS;
-- territory가 바뀌면 언어를 제외하고 시간,통화,달력,날짜 포맷가 바뀐다!! 
 
SELECT SYSDATE, CURRENT_DATE FROM dual;
 
ALTER SESSION SET NLS_TERRITORY = 'america';
 
SELECT SYSDATE, CURRENT_DATE FROM dual;
 
SELECT *
FROM NLS_SESSION_PARAMETERS
WHERE parameter='NLS_DATE_FORMAT';
 
ALTER SESSION SET NLS_DATE_FORMAT = 'DD-Mon-RR';
SELECT SYSDATE, CURRENT_DATE FROM dual; -- 앞글자만 대문자인 americal date 확인가능.
 
 
cs


* LTRIM('xxyXYxy','xy') -- 소문자 x 또는 y 조건이라 결과는 XYxy이다.


* TRIM의 지정문자는 한 글자만 가능하다.


* 반올림 ROUND 함수

음수인자는 정수자리 반올림이다. -2인경우 십의 자리에서 반올림해서 45.xxx인 경우 결과값은 0이다.


* TRUNC는 ROUND와 메커니즘은 같고 버림이다.


* RR 날짜 형식

- 헷갈리면 4자리 다쓰면 된다.

- DD-MON-RR 포맷이라도 '01-FEB-2017'해도 아무 문제 없다.

- 그림을 그려서 RR(50~49)과 YY(00~99) 구분하자!