빅데이터/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) 구분하자!