SQL 함수의 분류와 정리
* 10g 기준, 총
259개 (그룹함수와 분석함수를 각각 따로 계산, CORR_, STATS_T_TEST_로 시작하는 함수들을 각각 하나로
계산할 경우) * 붉은색으로 표시된 함수의 이름을 클릭하면 함수에 대한 설명을 볼 수
있다.
1. Single-Row Functions (단일행함수)
단일행함수는 조회되는
table이나 view의 모든 행에 대해서 단일행만을 반환한다. select-list나, where절, start with절,
connect by절,having절에 나올 수 있다.
Numeric
Functions (수치함수)
수치함수는 수치값을 입력받고 수치값을 반환한다. number 타입의
수치값을 반환하는 대부분의 수치함수는 38자리의 정밀도(유효숫자)를 갖는다. 초월함수인 COS, COSH, EXP, LN, LOG,
SIN, SINH, SQRT, TAN, TANH는 36자리의 정밀도를 갖는다. ACOS, ASIN, ATAN, ATAN2는
30자리의 정밀도를 갖는다.
ABS ACOS ASIN ATAN ATAN2 BITAND CEIL COS COSH EXP FLOOR LN LOG MOD NANVL POWER REMAINDER ROUND (number) SIGN SIN SINH SQRT TAN TANH TRUNC (number) WIDTH_BUCKET
Character Functions Returning Character Values (문자값을 반환하는
문자함수)
입력되는 값이 char, varchar2 타입으로 주어질 경우, 반환되는 값은 varchar2
타입이다. 입력되는 값이 nchar, nvarchar2 타입으로 주어질 경우, 반환되는 값은 nvarchar2
타입이다.
함수에 의해 반환되는 값의 길이는 반환되는 값의 datatype의 최대길이를 넘지 못한다. 반환되는
char, varchar2 타입의 값이, 허용되는 최대치를 초과할 경우, 초과되는 부분을 잘라내고 값을
반환한다.
CHR CONCAT INITCAP LOWER LPAD LTRIM NLS_INITCAP NLS_LOWER NLSSORT NLS_UPPER REGEXP_REPLACE REGEXP_SUBSTR REPLACE RPAD RTRIM SOUNDEX SUBSTR TRANSLATE TREAT TRIM UPPER
NLS Character Functions (National Language Support
함수)
character set에 관한 정보를
반환한다.
NLS_CHARSET_DECL_LEN NLS_CHARSET_ID NLS_CHARSET_NAME
Character Functions Returning Number Values (수치값을 반환하는
문자함수)
ASCII INSTR LENGTH REGEXP_INSTR
Datetime Functions (시간함수)
시간함수는 다음과 같은 3가지
datatype을 가지고 계산을 한다. date (date) timestamp (timestamp, timestamp
with time zone, timestamp with local time zone) interval (interval day to
second, interval year to month)
ADD_MONTHS CURRENT_DATE CURRENT_TIMESTAMP DBTIMEZONE EXTRACT
(datetime) FROM_TZ LAST_DAY LOCALTIMESTAMP MONTHS_BETWEEN NEW_TIME NEXT_DAY NUMTODSINTERVAL NUMTOYMINTERVAL ROUND
(date) SESSIONTIMEZONE SYS_EXTRACT_UTC SYSDATE SYSTIMESTAMP TO_CHAR
(datetime) TO_TIMESTAMP TO_TIMESTAMP_TZ TO_DSINTERVAL TO_YMINTERVAL TRUNC
(date) TZ_OFFSET
General Comparison
Functions (비교함수)
GREATEST LEAST
Conversion Functions (변환함수)
변환함수의 이름은
datatypeTodatatype의 규칙을 따른다. 앞의 datatype이 입력되는 datatype, 뒤의 datatype이
반환되는
datatype이다.
ASCIISTR BIN_TO_NUM CAST CHARTOROWID COMPOSE CONVERT DECOMPOSE HEXTORAW NUMTODSINTERVAL NUMTOYMINTERVAL RAWTOHEX RAWTONHEX ROWIDTOCHAR ROWIDTONCHAR SCN_TO_TIMESTAMP TIMESTAMP_TO_SCN TO_BINARY_DOUBLE TO_BINARY_FLOAT TO_CHAR
(character) TO_CHAR (datetime) TO_CHAR
(number) TO_CLOB TO_DATE TO_DSINTERVAL TO_LOB TO_MULTI_BYTE TO_NCHAR
(character) TO_NCHAR (datetime) TO_NCHAR
(number) TO_NCLOB TO_NUMBER TO_DSINTERVAL TO_SINGLE_BYTE TO_TIMESTAMP TO_TIMESTAMP_TZ TO_YMINTERVAL TO_YMINTERVAL TRANSLATE
... USING UNISTR
Large Object
Functions (LOB 함수)
BFILENAME EMPTY_BLOB,
EMPTY_CLOB
Collection Functions
(Collection 함수)
중첩테이블(nested table), varray를 가지고 계산을
한다.
CARDINALITY COLLECT POWERMULTISET POWERMULTISET_BY_CARDINALITY SET
Hierarchical Function (계층쿼리
함수)
SYS_CONNECT_BY_PATH
Data Mining
Functions (데이터마이닝
함수)
CLUSTER_ID CLUSTER_PROBABILITY CLUSTER_SET FEATURE_ID FEATURE_SET FEATURE_VALUE PREDICTION PREDICTION_COST PREDICTION_DETAILS PREDICTION_PROBABILITY PREDICTION_SET
XML Functions (XML
함수)
APPENDCHILDXML DELETEXML DEPTH EXTRACT
(XML) EXISTSNODE EXTRACTVALUE INSERTCHILDXML INSERTXMLBEFORE PATH SYS_DBURIGEN SYS_XMLAGG SYS_XMLGEN UPDATEXML XMLAGG XMLCDATA XMLCOLATTVAL XMLCOMMENT XMLCONCAT XMLFOREST XMLPARSE XMLPI XMLQUERY XMLROOT XMLSEQUENCE XMLSERIALIZE XMLTABLE XMLTRANSFORM
Encoding and Decoding
Functions
DECODE DUMP ORA_HASH VSIZE
NULL-Related Functions (NULL 관련 함수)
COALESCE LNNVL NULLIF NVL NVL2
Environment and Identifier Functions (환경변수 관련
함수)
instance, session에 관한 정보를
제공한다.
SYS_CONTEXT SYS_GUID SYS_TYPEID UID USER USERENV
2.
Aggregate Functions (그룹함수)
그룹함수는 select-list나, order by절, having절에
나올 수 있다. group by절을 포함하는 쿼리에서 select-list에는 그룹함수, group by절에 있는
표현식(expression), 상수만이 올 수 있다. COUNT(*), GROUPING을 제외한 모든 그룹함수는 NULL값을
무시한다.
AVG COLLECT CORR CORR_* COUNT COVAR_POP COVAR_SAMP CUME_DIST DENSE_RANK FIRST GROUP_ID GROUPING GROUPING_ID LAST MAX MEDIAN MIN PERCENTILE_CONT PERCENTILE_DISC PERCENT_RANK RANK REGR_
(Linear Regression)
Functions STATS_BINOMIAL_TEST STATS_CROSSTAB STATS_F_TEST STATS_KS_TEST STATS_MODE STATS_MW_TEST STATS_ONE_WAY_ANOVA STATS_T_TEST_* STATS_WSR_TEST STDDEV STDDEV_POP STDDEV_SAMP SUM VAR_POP VAR_SAMP VARIANCE
3.
Analytic Functions (분석함수, 해석함수)
분석함수는 그룹단위로 값을 계산한다는 점에서 그룹함수와
유사하지만, 그룹마다 1개이상의 행을 반환한다는 점에서 그룹함수와 상당한 차이가 있다. 분석함수에서의 그룹을 윈도우(window)라고
부르며, analytic_clause에서 정의한다.
* 분석함수와 analytic_clause의 자세한 설명은 아래
페이지를 참고한다. - http://www.soqool.com/servlet/board?cmd=view&cat=100&subcat=1030&seq=2
조회되는
각 행마다, 분석함수 값을 계산하기 위한 윈도우를 정의한다. 윈도우의 크기는 행의 갯수나 시간간격을 계산하여 정의할 수 있다.
분석함수는 order by절을 제외하고는 쿼리에서 가장 나중에 실행된다. 따라서 select-list나 order by절에만 사용할 수
있다.
분석함수는 데이타웨어하우징(DW) 분야에서 많이 사용된다. 아래 분석함수 중에서 별표(*)가 되어 있는
함수들은 windowing_clause를 포함해서 모든 분석함수의 구문들을 사용할 수 있는 함수들이다.
* 분석함수와
windowing_clause의 자세한 설명은 아래 페이지를 참고한다. - http://www.soqool.com/servlet/board?cmd=view&cat=100&subcat=1030&seq=2
AVG * CORR
* COVAR_POP * COVAR_SAMP * COUNT
* CUME_DIST DENSE_RANK FIRST FIRST_VALUE
* LAG LAST LAST_VALUE * LEAD MAX * MIN
* NTILE PERCENT_RANK PERCENTILE_CONT PERCENTILE_DISC RANK RATIO_TO_REPORT REGR_
(Linear Regression) Functions * ROW_NUMBER STDDEV
* STDDEV_POP * STDDEV_SAMP * SUM * VAR_POP
* VAR_SAMP * VARIANCE *
4. Object Reference
Functions
DEREF MAKE_REF REF REFTOHEX VALUE
5. Model Functions (Model
함수)
CV ITERATION_NUMBER PRESENTNNV PRESENTV PREVIOUS
References
1. Oracle(R) Database SQL Reference 10g Release
2 (10.2) - SQL Functions - http://download-west.oracle.com/docs/cd/B19306_01/server.102/b14200/functions001.htm
2.
Oracle Database SQL Reference, 10g Release 2 (10.2) B14200-02, b14200.pdf -
http://download-west.oracle.com/docs/cd/B19306_01/server.102/b14200.pdf
Document
History
최초등록: 2006-04-15 1차 수정: 2006-04-19 2차 수정:
2006-07-17, 함수 추가 3차 수정: 2006-08-27, 함수 추가 4차 수정: 2006-09-08, 함수
추가 5차 수정: 2006-10-20, 함수 추가
* 이 문서의 내용에 관해서 잘못된 부분이 있거나 질문이 있으신 분은 답글로 알려주시기 바랍니다. * 이 문서를 다른 곳에
게재하실 분은 출처를 꼭 밝혀주시기 바랍니다.
출처: http://www.soqool.com/servlet/board?cmd=view&cat=100&subcat=1030&seq=1 |