Backend/db

SQL 함수

IT grow. 2018. 8. 19. 16:44
반응형

SQL 함수


# 함수를 사용하면 ALIAS 필수이다.

( 1 ) 숫자형 함수

1.     ABS ( n ) : 절대값

2.     SIGN ( n ) : 양수 ( 1 ) , 음수 ( -1 ) , 0 ( 0 ) 을 구분한다

3.     Round ( n , i ) : 숫자 n을 소수점 i자리에서 반올림

4.     TRUNC ( n , i ) : 숫자 n을 소수점 i자리에서 자름

5.     CEIL ( n ) : 가장 큰 정수

6.     FLOOR ( n ) : 가장 작은 정수

7.     MOD ( n2 , n1 ) : n2에서 n1을 나눈 나머지 연산

8.     POWER ( n2 , n1 ) : n2n1 제곱값

9.     SQRT ( n ) : n의 제곱근 값

 

( 2 ) 문자형 함수

1.     LOWER(str) : 알파벳을 소문자로 변환

2.     UPPER (str) : 알파벳을 대문자로 변환

3.     INITCAP (str) : 첫번째 글자만 대문자로 변환

4.     CONCAT(str1,str2) : str1 + str2 , 두 문자열을 연결

5.     SUBSTR ( str , i , n ) : 문자열 중 i번째에서 n개의 일부 문자를 선택

6.     INSTR ( str, ch , n , I ) :  문자열 중에서 ch문자열이 n번째부터 i번째있는 위치

7.     LENGTH ( str ) : 문자열의 길이

8.     LPAD / RPAD ( str , n , ch ) : n자리수 만큼 확부 후 빈 공백에 특정 문자로 채움

9.     TRIM / LTRIM / RTRIM : 문자를 제거 ( 양쪽 공백 제거에 사용 )

10.  TRANSLATE ( column , str1 , str2 ) : 문자열에서 str1str2로 대체

11.  REPLACE ( column , str1 , str2 ) : 문자열에서 str1str2로 대신

 

( 3 ) 날짜형 함수

           # 시스템의 날짜를 가져오는 함수

1.     SYSDATE , CURRENT_DATE , SYSTIMESTAMP , CURRENT_TIMESTAMP

2.     이 함수들은 사용시 () 필요없음

3.     Sysdatecurrent_date의 차이는 current_date는 세션 시간을 따른다.

4.     만일 한 명은 한국에서 한 명은 미국에서 본사 시스템에 접속 시 각각 세션에 따른 시간을 확인하게 된다.


# 날짜 연산

1.     Date + number  à Date  ( 일수에 날짜를 더함 )

2.     Date – number à Date ( 일수에 날짜를 뺌 )

3.     Date – Date à 일수 ( 일수에 다른 일수를 뺌 )

4.     Date + number /24 à Date (시간을 날짜에 더 함 )


# 날짜 함수

1.     MONTHS_BETWEEN : 두 날짜 사이의 월수를 계산

2.     ADD_MONTHS : 월을 날짜에 더함

3.     NEXT_DAY : 다음 요일에 대한 날짜

4.     LAST_DAY : 월의 마지막 날을 계산

5.     ROUND : 날짜를 반올림

6.     TRUNC : 날짜를 절삭

 

 

( 4 ) 변환 함수

1.     TO_CHAR

2.     TO_DATE

3.     TO_NUMBER

 

( 5 ) 조건 함수

1.     If ~ else ei ~ else 구문

2.     CASE expr WHEN condition1 THEN result1

          WHEN condition2 THEN result2

             WHEN condition3 THEN result3

                                  ….

                       ELSE default

             END

             FROM table_name;



( 6 ) 양쪽 공백을 제거 


SELECT '-'||TRIM('이순신')||'-'as col1,

'-'||lTRIM('이순신')||'-'as col2,

'-'||rTRIM('이순신')||'-'as col3 from dual;


* dual : dummy 테이블로 sys user가 owner이고 모든 사용자가 사용가능 

* 임의의 값을 알고자 할 경우 유용하게 사용하는 테이블



반응형