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

 
AND