카테고리 보관물: Oracle

오라클 MSSQL 함수 비교

함수 설명 Oracle Microsoft SQL Server 함수이름동일여부
절대 값 ABS ABS Y
아크 코사인 ACOS ACOS Y
아크 사인 ASIN ASIN Y
n의 아크 탄젠트 ATAN ATAN Y
n과 m의 아크 탄젠트 ATAN2 ATN2 N
최소 정수 >= 값 CEIL CEILING N
코사인 COS COS Y
쌍곡선 코사인 COSH COT N
지수 값 EXP EXP Y
최대 정수 <= 값 FLOOR FLOOR Y
자연 로그 LN LOG N
밑이 n인 로그 LOG(N) 해당 없음 N
상용 로그 LOG(10) LOG10 N
나머지 연산자 MOD USE MODULO (%) OPERATOR N
거듭제곱 POWER POWER Y
난수 해당 없음 RAND N
반올림 ROUND ROUND Y
숫자 부호 표시 SIGN SIGN Y
사인 SIN SIN Y
쌍곡선 사인 SINH 해당 없음 N
제곱근 SQRT SQRT Y
탄젠트 TAN TAN Y
쌍곡선 탄젠트 TANH 해당 없음 N
잘라내기 TRUNC 해당 없음 N
목록의 최대값 GREATEST 해당 없음 N
목록의 최소값 LEAST 해당 없음 N
NULL일 때 숫자 변환 NVL ISNULL N
함수 설명 Oracle Microsoft SQL Server 함수이름동일여부
문자를 ASCII로 변환 ASCII ASCII Y
문자열 연결 CONCAT ( + ) N
ASCII를 문자로 변환 CHR CHAR N
문자열의 문자 시작 위치 반환(왼쪽부터) INSTR CHARINDEX N
소문자로 변환 LOWER LOWER Y
대문자로 변환 UPPER UPPER Y
문자열의 왼쪽 채우기 LPAD 해당 없음 N
선행 공백 제거 LTRIM LTRIM Y
후행 공백 제거 RTRIM RTRIM Y
문자열의 패턴 시작 위치 INSTR PATINDEX N
문자열을 여러 번 반복 RPAD REPLICATE N
문자열의 발음 기호 SOUNDEX SOUNDEX Y
반복되는 공백 문자열 RPAD SPACE N
수치 데이터에서 변환된 문자 데이터 TO_CHAR STR N
부분 문자열 SUBSTR SUBSTRING N
문자 바꾸기 REPLACE STUFF N
문자열에서 각 단어의 첫 문자를 대문자로 만들기 INITCAP 해당 없음 N
문자열 번역 TRANSLATE 해당 없음 N
문자열 길이 LENGTH DATELENGTH 또는 LEN N
목록에서 가장 큰 문자열 GREATEST 해당 없음 N
목록에서 가장 작은 문자열 LEAST 해당 없음 N
NULL일 때 문자열 변환 NVL ISNULL N
함수 설명 Oracle Microsoft SQL Server 함수이름동일여부
날짜 추가 (날짜 열의 +/- 값) 또는 ADD_MONTHS DATEADD N
날짜 차이 (날짜 열의 +/- 값) 또는 MONTHS_BETWEEN DATEDIFF N
현재 날짜와 시간 SYSDATE GETDATE() N
달의 마지막 날 LAST_DAY 해당 없음 N
표준 시간대 변환 NEW_TIME 해당 없음 N
다음 날의 요일 NEXT_DAY 해당 없음 N
날짜의 문자열 표시 TO_CHAR DATENAME N
날짜의 정수 표시 TO_NUMBER(TO_CHAR)) DATEPART N
날짜 반올림 ROUND CONVERT N
날짜 잘라내기 TRUNC CONVERT N
문자열을 날짜로 TO_DATE CONVERT N
NULL일 때 날짜 변환 NVL ISNULL N
함수 설명 Oracle Microsoft SQL Server 함수이름동일여부 비고
NULL이 아닌 첫째 식 반환 DECODE COALESCE N case문으로
현재 시퀀스 값 CURRVAL 해당 없음 N  
다음 시퀀스 값 NEXTVAL 해당 없음 N  
식1 = 식2일 때 NULL 반환 DECODE NULLIF N case문으로
사용자의 로그인 ID 번호 UID SUSER_ID N  
사용자의 로그인 이름 USER SUSER_NAME N  
사용자의 데이터베이스 ID 번호 UID USER_ID N  
사용자의 데이터베이스 이름 USER USER_NAME N  
현재 사용자 CURRENT_USER CURRENT_USER Y  
사용자 환경(감사 추적) USERENV 해당 없음 N  
CONNECT BY 절의 수준 LEVEL 해당 없음 N  
함수 설명 Oracle Microsoft SQL Server 함수이름동일여부
평균 AVG AVG Y
개수 COUNT COUNT Y
최대값 MAX MAX Y
최소값 MIN MIN Y
표준 편차 STDDEV STDEV 또는 STDEVP N
합계 SUM SUM Y
분산 VARIANCE VAR 또는 VARP N
Oracle Microsoft SQL Server
DECODE (테스트_값,
식1, 값1
[[,식2, 값2] [U]]
[,기본_값]
)

CREATE VIEW STUDENT_ADMIN.STUDENT_GPA
(SSN, GPA)
AS SELECT SSN, ROUND(AVG(DECODE(grade
,’A’, 4
,’A+’, 4.3
,’A-‘, 3.7
,’B’, 3
,’B+’, 3.3
,’B-‘, 2.7
,’C’, 2
,’C+’, 2.3
,’C-‘, 1.7
,’D’, 1
,’D+’, 1.3
,’D-‘, 0.7
,0)),2)
FROM STUDENT_ADMIN.GRADE
GROUP BY SSN

CASE 입력_식
WHEN when_식 THEN 결과_식
[[WHEN when_식 THEN 결과_식] […]]
[ELSE else_결과_식]
END

CREATE VIEW STUDENT_ADMIN.STUDENT_GPA
(SSN, GPA)
AS SELECT SSN, ROUND(AVG(CASE grade
WHEN ‘A’ THEN 4
WHEN ‘A+’ THEN 4.3
WHEN ‘A-‘ THEN 3.7
WHEN ‘B’ THEN 3
WHEN ‘B+’ THEN 3.3
WHEN ‘B-‘ THEN 2.7
WHEN ‘C’ THEN 2
WHEN ‘C+’ THEN 2.3
WHEN ‘C-‘ THEN 1.7
WHEN ‘D’ THEN 1
WHEN ‘D+’ THEN 1.3
WHEN ‘D-‘ THEN 0.7
ELSE 0
END),2)
FROM STUDENT_ADMIN.GRADE
GROUP BY SSN

변환 Oracle Microsoft SQL Server 함수이름동일여부
문자를 숫자로 TO_NUMBER(’10’) CONVERT(numeric, ’10’) N
숫자를 문자로 TO_CHAR(10) CONVERT(char, 10) N
문자를 날짜로 TO_DATE(’04-JUL-97′) CONVERT(datetime, ’04-JUL-97′) N
TO_DATE(’04-JUL-1997′, CONVERT(datetime, ’04-JUL-1997′) N
‘dd-mon-yyyy’) CONVERT(datetime, ‘July 4, 1997’) N
TO_DATE(‘July 4, 1997’,   N
‘Month dd, yyyy’)   N
날짜를 문자로 TO_CHAR(sysdate) CONVERT(char, GETDATE()) N
TO_CHAR(sysdate, ‘dd mon yyyy’) CONVERT(char, GETDATE(), 106) N
TO_CHAR(sysdate, ‘mm/dd/yyyy’) CONVERT(char, GETDATE(), 101) N
16진수를 이진수로 HEXTORAW(‘1F’) CONVERT(binary, ‘1F’) N
이진수를 16진수로 RAWTOHEX CONVERT(char이진_열) N
(binary_column) N
연산자 Oracle Microsoft SQL Server 함수이름동일여부
같음 (=) (=)  
(>) (>)  
작음 (<) (<)  
크거나 같음 (>=) (>=)  
작거나 같음 (<=) (<=)  
같지 않음 (!=, <>, ^=) (!=, <>, ^=)  
크지 않음, 작지 않음 해당 없음 !> , !<  
집합의 구성원에 있음 IN IN  
집합의 구성원에 없음 NOT IN NOT IN  
집합에 있는 임의의 값 ANY, SOME ANY, SOME  
집합에 있는 != ALL, <> ALL, < ALL, != ALL, <> ALL, < ALL,  
모든 값 > ALL, <= ALL, >= ALL, > ALL, <= ALL, >= ALL,  
  != SOME, <> SOME, != SOME, <> SOME,  
  < SOME, > SOME, < SOME, > SOME,  
  <= SOME, >= SOME <= SOME, >= SOME  
패턴과 같음 LIKE LIKE  
패턴과 같지 않음 NOT LIKE NOT LIKE  
x와 y 사이의 값 BETWEEN x AND y BETWEEN x AND y  
사이에 있지 않은 값 NOT BETWEEN NOT BETWEEN  
값이 있음 EXISTS EXISTS  
값이 없음 NOT EXISTS NOT EXISTS  
값이 NULL이거나 NULL이 아님 IS NULL, IS NOT NULL 같습니다. 이전 버전과의
호환성을 위해 = NULL,
!= NULL도 사용할 수 있지만
권장되지 않습니다.
IS NULL,
IS NOT NULL
로 변경
Oracle Microsoft SQL Server
SELECT *
FROM STUDENT_ADMIN.STUDENT
WHERE LNAME LIKE ‘A%’
OR LNAME LIKE ‘B%’
OR LNAME LIKE ‘C%’
SELECT *
FROM STUDENT_ADMIN.STUDENT
WHERE LNAME LIKE ‘[ABC]%’