2010년 2월 2일 화요일

Oracle과 SQL Server의 유사 Function 비교

문자열 함수

Function

Oracle

SQL Server

Convert character to ASCII

ASCII

ASCII

String concatenate

CONCAT

(expression + expression)

Convert ASCII to character

CHR

CHAR

Return starting point of character in character string (from left)

INSTR

CHARINDEX

Convert characters to lowercase

LOWER

LOWER

Convert characters to uppercase

UPPER

UPPER

Pad left side of character string

LPAD

N/A

Remove leading blank spaces

LTRIM

LTRIM

Remove trailing blank spaces

RTRIM

RTRIM

Starting point of pattern in character string

INSTR

PATINDEX

Repeat character string multiple times

RPAD

REPLICATE

Phonetic representation of character string

SOUNDEX

SOUNDEX

String of repeated spaces

RPAD

SPACE

Character data converted from numeric data

TO_CHAR

STR

Substring

SUBSTR

SUBSTRING

Replace characters

REPLACE

STUFF

Capitalize first letter of each word in string

INITCAP

N/A

Translate character string

TRANSLATE

N/A

Length of character string

LENGTH

DATALENGTH or LEN

Greatest character string in list

GREATEST

N/A

Least character string in list

LEAST

N/A

Convert string if NULL

NVL

ISNULL

 

Date 함수

Function

Oracle

SQL Server

Date addition

(use +)

DATEADD

Date subtraction

(use -)

DATEDIFF

Last day of month

LAST_DAY

N/A

Time zone conversion

NEW_TIME

N/A

First weekday after date

NEXT_DAY

N/A

Convert date to string

TO_CHAR

DATENAME

Convert date to number

TO_NUMBER(TO_CHAR())

DATEPART

Convert string to date

TO_DATE

CAST

Get current date and time

SYSDATE

GETDATE()

자주 사용하는 SQL 함수

1. 자주 사용하는 문자열 함수

 

구분

문자형 함수

사용 목적

대소문자
전환함수

LOWER(문자열)

문자열의 알파벳 문자를 소문자로 바꾸어 준다.

UPPER(문자열)

문자열의 알파벳 문자를 대문자로 바꾸어 준다.

INITCAP(문자열)

문자열에서 각 단어의 첫 글자를 대문자로, 모든 다른 문자는 소문자로 만들어 준다.

문자
조작함수

CONCAT(문자열1, 문자열2)

문자열1과 문자열2을 연결합니다.
연결연산자(||)와 동일하다.

SUBSTR(문자열, m[, n ] )

문자열 중 m위치에서 n개의 문자길이에 해당하는 문자를 돌려준다.
n이 생략되면 마지막 문자까지이다.

LENGTH(문자열)

문자열의 개수를 값으로 돌려준다.

LTRIM(문자열 [, 지정문자] )

문자열의 첫 문자부터 확인해서 지정문자가 나타나는 동안 해당문자를 제거한다.

(지정문자가 생략되면 공백 값이 디폴트)

RTRIM(문자열 [, 지정문자 ] )

문자열의 마지막 문자부터 확인해서 지정문자가 나타나는 동안 해당문자를 제거한다.

(지정문자가 생략되면 공백 값이 디폴트)

TRIM( [leading | trailing | both ]
지정문자 FROM 문자열 )

문자열에서 머리말, 꼬리말, 또는 양쪽에 있는 지정문자를 제거한다.

( leading | trailing | both가 생략되면 both값이 디폴트)

LPAD(문자열1, n [, 문자열2 ] )

문자열1의 왼쪽에 문자열2를 덧붙여서
전체가 n개의 문자가 되도록 한다.
문자열2가 생략되면 공백으로 채워진다.

RPAD(문자열1, n [, 문자열2 ] )

문자열1의 오른쪽에 문자열2를 덧붙여서 전체가 n개의 문자가 되도록 한다.
문자열2가 생략되면 공백으로 채워진다.

INSTR
(
문자열1, 문자열2[, n[, m] ] )

문자열1에서 n번째 문자부터 문자열2가
m번째 나타나는 위치를 돌려준다.
n,m이 생략되면 디폴트 값은 1이다.

TRANSLATE
(
문자열1,문자열2,문자열3)

문자열1 중에서 문자열2를 문자열3으로 교체한다.

REPLACE
(
문자열1,문자열2[,문자열3])

문자열1에서 문자열2를 찾아서 문자열3으로 교체한다. 문자열3이 생략되면 문자열2가 제거된다.

 

 

 

2. 자주 사용하는 날짜 함수

 

날짜형 함수

사용 목적

SYSDATE

현재 날짜와 시각

ADD_MONTHS(날짜, n)

날짜에 n개월을 더 한 날짜 (n은 정수이어야 함)

MONTHS_BETWEEN(날짜1, 날짜2)

날짜1과 날짜2 사이의 월수를 돌려주며 양수, 음수도 가능하다.

NEXT_DAY(날짜,'요일')

날짜 다음의 해당 주('요일')의 다음 날짜를 돌려준다.
요일은 날 또는 문자 스트링을 나타내는 숫자이다.

LAST_DAY(날짜)

현재 날짜를 포함하고 있는 달의 마지막 날을 돌려 준다.

ROUND(날짜 [, 'FORMAT'] )

어떤 FORMAT이 생략되면 자정까지 시간설정과 함께 날짜를 돌려준다. 다른 시간을 갖고 있는 날짜 비교시 사용된다.

TRUNC(날짜 [, 'FORMAT'] )

어떤 FORMAT이 생략되면 날짜에 포함되어 있는 달의 번째 날을 돌려준다. 날짜의 시간부분을 제거할 때 사용된다.

 

날짜형 함수 사용

결과 값 및 설명

SYSDATE

'03-OCT-02' → 2002년 10월 3일을 의미

ADD_MONTHS('01-OCT-02', 3)

'01-JAN-03'

MONTHS_BETWEEN('03-JAN-01','03-NOV-02')
MONTHS_BETWEEN(SYSDATE,'01-NOV-02')

-22


-.92054137

 

NEXT_DAY('03-OCT-02','MON')
NEXT_DAY('03-OCT-02',1)

'07-OCT-02'
'06-OCT-02'

LAST_DAY('02-OCT-02')

'31-OCT-02'

ROUND(SYSDATE,'MONTH')
ROUND(SYSDATE,'YEAR')
ROUND('03-OCT-02'.'MONTH')

'01-OCT-02'
'01-JAN-03'
에러 : 날짜가 인자로 오지 않아서 에러가 발생함.변환형 함수를 사용해야 함.

TRUNC(SYSDATE,'MONTH')
TRUNC(SYSDATE,'YEAR')
TRUNC('03-OCT-02'.'MONTH')

 

'01-OCT-02'
'01-JAN-02'
에러 : 날짜가 인자로 오지 않아서 에러가 발생함.
변환형 함수를 사용해야 함.

 

 

 

3. 자주 사용하는 숫자형 함수

 

숫자형 함수

사용 목적

ABS(숫자)

숫자의 절대값을 돌려준다.

MOD(숫자1, 숫자2)

숫자1을 숫자2로 나누어 나머지 값을 돌려준다.

SIGN(숫자)

숫자가 양수인지, 음수인지 0 인지를 구별한다.

CEIL(숫자)

숫자보다 크거나 같은 최소정수를 돌려준다.

FLOOR(숫자)

숫자보다 작거나 같은 최대정수를 돌려준다.

ROUND(숫자 [, m ] )

숫자를 소수점 m자리에서 반올림하여 돌려준다.
m
이 생략되면 디폴트 값은 0 이다.

TRUNC(숫자 [, m] )

숫자를 소수 m자리에서 잘라서 버린다.
m
이 생략되면 디폴트 값은 0 이다.

SIN, COS, TAN,...

숫자의 삼각함수 값을 돌려준다.

 

숫자형 함수 사용

결과 값 및 설명

ABS(-15)

15

MOD(7, 2)

1

SIGN(-281.1)
SIGN(0)

-1
0
→ 양수이면 1을 음수이면 -1을 0 이면 0을 리턴한다.

CEIL(38.123)
CEIL(-28.123)

39
-28

FLOOR(38.123)
FLOOR(-28.123)

38
-29

ROUND(38.5255, 3)
ROUND(38.5255,-1)
ROUND(-38.5235, 3)
ROUND(-38.523)

38.526
40
-38.524
-39

TRUNC(38.1255, 3)
TRUNC(-38.1235, 3)
TRUNC(-38.123)

38.125
-38.123
-38

SIN(30)
COS(30)
TAN(30)

-.9880316
.15425145
-6.405331