トップ 履歴 一覧 カテゴリ ソース 検索 ヘルプ RSS ログイン

Oracle/SqlFunc

INDEX

Oracle固有の関数等

日付

 日付関数

ADD_MONTHS( date , num )
日付datenum ヶ月足した値を戻す。※加算される日付が月末日の場合、返される日付も加算された月の月末日になる。
LAST_DAY( date )
指定した日付date の月の月末日を戻す。
NEXT_DAY( date , char )
指定した日付date の次のchar 曜日を迎える日付を戻す。
MONTHS_BETWEEN( date1 , date2 )
日付date1date2 の間の月数を戻す。
SYSDATE
現在の日時を戻す。

数値

 数値関数

ABS( num )
num の絶対値を戻す。
MOD( num1 , num2 )
num1num2 で割った余りを戻す。
POWER( num1 , num2 )
num1num2 乗した値を戻す。
SQRT( num )
num の平方根を戻す。
CEIL( num )
num 以上の最も小さい整数を戻す。
FLOOR( num )
num 以下の最も大きい整数を戻す。
ROUND( num1 , num2 )
num1 を小数点以下num2 桁に四捨五入した値を返す。
TRUNC( num1 , num2 )
num1 を少数点以下num2 桁に切り捨てた値を戻す。
BITAND( num1 , num2 )
num1num2 の論理積の値を戻す。

文字

 文字関数

LENGTH( char )
char の長さを文字数で戻す。
INSTR( char1 , char2 , num1 , num2 )
char1num1 番目の文字からchar2 の探索を開始し、char2num2 番目に現れる位置を戻す。
SUBSTR( char , num1 , num2 )
charnum1 番目の文字からnum2 文字の長さの文字列を抜き出して戻す。
CONCAT( char1 , char2 )
2つの文字列(char1 ,char2 )を1つに結合する。
LPAD( char1 , num , char2 )
num 桁になるようにchar1 の左にchar2 を埋める。
RPAD( char1 , num , char2 )
num 桁になるようにchar1 の右にchar2 を埋める。

 文字変換関数

INITCAP( char )
各単語の最初の文字を大文字、残りの文字を小文字にして戻す。
UPPER( char )
char 文字列を大文字にして戻す。
LOWER( char )
char 文字列を小文字にして戻す。
TO_MULTI_BYTE( char )
マルチバイト(全角)文字にして戻す。(注1)
TO_SINGLE_BYTE( char )
シングルバイト(半角)文字にして戻す。(注1)

注1:TO_MULTI_BYTE, TO_SINGLE_BYTE で相互に変換されるのは、アスキーコード(キャラクタセット:US7ASCII)のみである。日本語の半角カナは、マルチバイトに相当するため。変換されない。また、キャラクタセットが AL16UTF16 の場合(NCHAR, NVARCHAR2 項目)、UNICODE(UTF-16)であるためマルチバイトとして扱われる。

データ変換

 変換関数

TO_CHAR( 文字列|数値|日付 [,出力書式])
出力書式に従い文字列に変換する
TO_DATE( 文字列 [,入力書式])
文字列を入力書式に従い日付に変換する
TO_NUMBER( 文字列 [,入力書式])
文字列を入力書式に従い数値に変換する
NUMTODSINTERVAL( 数値 , 'DAY'|'HOUR'|'MINUTE'|'SECOND' )
数値を指定された時間隔として期間リテラル(INTERVAL DAY TO SECOND)に変換する
NUMTOYMINTERVAL( 数値 , 'YEAR'|'MONTH' )
数値を指定された時間隔として期間リテラル(INTERVAL YEAR TO MONTH)に変換する
HEXTORAW( 文字列 )
16進数文字列をRAW値に変換
RAWTOHEX( RAW値 )
RAW値を16進数文字列に変換
CHARTOROWID( 文字列 )
ROWID文字列をROWID値に変換
ROWIDTOCHAR( ROWID値 )
ROWID値をROWID文字列に変換

 書式指定

編集形式 内容 編集形式 内容
DD 日(01-31) FM 空白埋めしない
DDD 年の通算日数(1-366) 9 有効桁数編集
D 週の通算日数(1-7) 0 有効桁数編集(ゼロ埋め)
DY 曜日(日〜土) G 区切り表記
DAY 曜日(日曜日〜土曜日) D 小数点表記
MM 月(01-12) L ローカル通貨表記
MON 月(JAN-DEC) 指定した位置にカンマを戻す
MONTH 月(1月〜12月) 指定した位置にピリオドを戻す
YY 年 西暦(下2桁)
YYYY 年 西暦(4桁)
RR 年(下2桁)
CC 世紀
HH (HH12) 時 12時表記(01-12)
HH24 時 24時表記(00-23)
MI 分(00-59)
SS 秒(00-59)
SSSSS 経過秒数(0-86399)

その他

 その他

NVL( expr , val )
expr の値がNULLの場合は、val を戻す。それ以外は、expr の値を戻す。
NVL2( expr , val1 , val2 )
expr の値がNULLの場合は、val2 を戻す。それ以外は、val1 の値を戻す。
NULLIF( expr1 , expr2 )
expr1expr2 が等しい場合は、NULLを戻す。それ以外は、expr1 を戻す。
COALESCE( expr , expr , …… , expr )
リスト中でNULLでない最初のexpr の値を戻す。
GREATEST( expr , expr , …… , expr )
リスト中で最大値のexpr を戻す。
LEAST( expr , expr , …… , expr )
リスト中で最小値のexpr を戻す。
DECODE( expr , val1 , rtn1 , val2 , rtn2 , …… [, else ] )
expr の値がval1 と等しい場合は、rtn1 を戻す。どのvalとも一致しない場合は、else を戻す。

 グループ関数

COUNT( expr )
NULL値を除いたexpr の行数を戻す。*を指定した場合はNULL値を含む行数を戻す。
MAX( expr )
NULL値を除いたexpr の最大値を戻す。
MIN( expr )
NULL値を除いたexpr の最小値を戻す。
AVG( expr )
NULL値を除いたexpr の平均値を戻す。
SUM( expr )
NULL値を除いたexpr の合計値を戻す。

その他(関数以外)

 CASE式

CASE式の記述の仕方は、以下の2通りあります。

CASE "式"
    WHEN "条件1" THEN "値1"
  [ WHEN "条件2" THEN "値2" [...]]
  [ ELSE "デフォルト値" ] END

"式"と"条件1"が一致すれば"値1"を返す、一致せず"条件2"が一致すれば"値2"を返す、…、すべての条件に一致しないもしくは"式"がNULLの場合は"デフォルト値"を返す。"デフォルト値"の設定がない場合は、NULLが返される。DECODE関数と同等の動きとなり、置き換えも可能である。

CASE WHEN "条件式1" THEN "値1"
   [ WHEN "条件式2" THEN "値2" [...]]
   [ ELSE "デフォルト値" ] END

"条件式1"の結果が真ならば"値1"を返す、偽で"条件式2"の結果が真ならば"値2"を返す、…、すべての式評価で偽になった場合は"デフォルト値"を返す。"デフォルト値"の設定がない場合は、NULLが返される。

 擬似列

ROWID
表の単一行を一意に識別する値
ROWNUM
問合せで選択された単一行の位置
USER
ログインユーザ名
UID
ログインユーザID

但し、行を選択し、ROWNUM値を割り当てた後で、ORDER BY句のソートを実行するので注意!

最終更新時間:2008年11月14日 16時00分00秒 指摘や意見などあればSandBoxのBBSへ。