[SQL] Function


<関数>


単行関数:N個の値を読み込み、N個の結果を返します。(各行実行関数->結果を返す)


グループ関数:N個の値を読み出し、1個の結果を返します。(グループごとに関数を実行->結果を返す)


-SELECTセクションで単行関数とグループ関数を同時に使用することはできません。(結果行数が異なるため)


・記述関数の位置は、SELECT、WHERE、ORDER BY、GROUP BY、HAVINGセクションで記述することができる。


1.文字関連関数


LENGTH(列|文字値)->戻り文字数
LENGTHB(列|文字値)->文字を返すバイト数
*ハングル3 byte、英語/数字/特殊文字1 byte


INSTR(列|「文字値」、「文字」[,POSITION[,OCCURRENCE])
  • は、指定された位置から指定された数字で現れる文字の開始位置を返す.

  • LPAD/RPAD(列|「文字値」、長さ(バイト)[,「追加する文字」)
  • のプロンプトバー|「文字値」で、任意の文字を左側または右側に追加し、最終N長の文字列を返します.
    *追加する文字値が指定されていない場合、スペースはdefault
  • です.
  • 文字を統一表示するために使用されます.

  • LTRIM/RTRIM(列|「文字値」[,削除する文字])
  • 文字列の左または右から削除する文字を返します.
  • 削除する文字値
  • を省略すると、デフォルトではスペースが削除されます.

  • TRIM(削除する文字値「FROM」列|「文字値」)
  • 文字の値の前/後/両方の指定文字を返します.
  • 削除する文字の値
  • を省略すると、デフォルトでは両方のスペースが削除されます.

  • SUBSTR(列|「文字値」,POSITION[,LENGTH])
  • 文字データから指定された位置から指定された数の文字列を抽出して返します.

  • LOWER/UPPER/NITCAP(列|「文字値」)
  • LOWER:すべて小文字に変更します.
  • UPPER:すべてを大文字に変更します.
  • INITCAP:各単語の前の各アルファベットが大文字になります.
  • CONCAT(列|「文字値」、列|「文字値」)
    2つの
  • 文字列を受信して1つに結合し、結果を返します.


  • REPLACE(列|「文字値」、変更する文字、変更する文字)
  • 列または文字値で、「変更する文字」を「変更する文字」に変更して返します.

  • 2.数値相関関数


    ABS(NUMER)
  • 絶対値の関数
  • を求めます
    MOD(NUMBER, NUMBER)
  • の2つの数で割った後に残りの数を返す関数(javaの%演算と同じ).
    *Oracleでは、%演算子形式の残りの演算子は提供されず、関数形式のみが提供されます.
  • ROUND(NUMBER[,位置])
    関数
  • 、指定位置を四捨五入する
  • 位置:デフォルト値0(.)、正の値(小数点の右側)と負の値(小数点の左側)を入力できます.


  • CEIL(NUMBER)
  • 小数点リフトに基づく関数
  • FLOOR(NUMBER)
    小数点廃棄に基づく関数

  • TRUNC(NUMBER[,位置])
  • の位置を指定し、
  • を破棄できます.
  • 位置:デフォルト値0(.)、正の数(右から小数)と負の数(左から小数)を入力できます.


  • 3.日付関連関数


    SYSDATE
  • システムの現在の日付と時刻を返します.
  • MONTHS_BETWEEN(DATE1, DATE2)
  • で入力した2つの日付の間の月数を返します.
  • の結果値はNUMBERタイプです.
  • ADD_MONTHS(DATE, NUMBER)
  • 特定の日付に入力した数字に月数を加えた日付を返します.
  • の結果値はDATEタイプです.
  • NEXT DAY(DATE,曜日(アルファベット|数字)
  • 特定の日付で取得する曜日の最近の日付を返します.
  • の結果値はDATEタイプです.
    *曜日(数字)->1=日曜日、2=月曜日、3=火曜日、4=水曜日、5=木曜日、6=金曜日、7=土曜日
  • LAST_DAY(DATE)
  • は、その月の最終日に戻ります.
  • の結果値はDATEタイプです.
  • EXTRACT(YEAR|MONTH|DAY FROM DATE)
  • は、特定の日付で年度、月、日の情報を抽出して返します.
    YEAR:年のみ抽出
    MONTH:月のみ抽出
    DAY:毎日サンプリング
  • の結果値はNUMBERタイプです.
  • 4.形変換関数


    TO CHAR(日付|数字[,形式])
  • の日付または数値タイプのデータを文字タイプのデータに変換して返します.
  • 結果値はCHARACTERタイプです.
  • TO DATE(数字|文字[,形式])
  • の数値または文字型データを日付型に変換して返します.
  • の結果値はDATEタイプです.
  • TO NUMBER(「文字値」[,フォーマット])
  • 文字型のデータを数値型のデータに変換して返します.
  • の結果値はNUMBERタイプです.
  • 5.空の処理関数


    NVL(カラム、カラム値がNULLの場合に返される値)
  • NULL列の値を指定したパラメータ値に変更して返します.
  • NVL 2(列、変更する値1、変更する値2)
  • カラムの値がNULLでない場合は1に変更され、カラムの値がNULLの場合は2に変更されます.
  • NULLIF(比較1,比較2)
  • は、2つの値が同じ場合はNULLを返し、2つの値が異なる場合は比較対象1を返します.
  • 6.選択関数


    DECODE(列|計算式、条件値1、結果値1、条件値2、結果値2、...および結果値)
    比較する値が条件値と一致する場合は、対応する結果値の関数を返します.

    CASE
    CASE WHEN 조건식1 THEN 결과값1
         WHEN 조건식2 THEN 결과값2
         ...
         ELSE 결과값N
    END


    7.グループ関数


    SUM(NUMBER)
    は、カラム値の合計
  • を返します.
  • AVG(NUMBER)
  • 対応するカラム値の平均値を求めて返します.
  • MIN/MAX(すべてのタイプのカラム)
  • MIN:カラム値の最小値を返します.
  • MAX:カラム値の最大値を返します.
  • COUNT(*|列名|DISTINCT列名)
  • 列または行数で返される関数をカウントします.
  • COUNT(*):クエリー結果に対応するすべてのロー数を返します.
  • COUNT(カラム名):返されるカラム数はNULLではありません.
  • COUNT(DISTINT列名):列の値の重複を削除する行数を返します.