クエリの実行で使用できる関数

仮想テーブルのクエリ設定で、SQLite3が提供する関数を利用できます。

クエリ内で使用できる関数は「表3.2 関数一覧」を参照してください。

表3.2 関数一覧

【Aggregate Function(集合関数)】

関数名

用途

備考

avg(X)

指定されているカラムの平均を返します。

  • 数字文字以外は0として扱う。

  • 値なしは比較対象外となりそれを除く行で割った値を返却する。

count(*)

テーブルの行数を返します。

 

count(X)

指定したカラムのNULLでない行数を返します。

 

max(X)

指定したカラムの最大値を返します。

数字文字以外は0として扱います。

min(X)

指定したカラムの最小値を返します。

数字文字以外は0として扱います。

sum(X)

指定したカラムの合計値を返します。

数字文字以外は0として扱います。

total(X)

指定したカラムの合計値を浮動小数点数で返します。

 

group_concat(X)

group_concat(X,Y)

指定したカラム(X)の値を連結して返します。

Yを指定すると、Xの値の区切り文字としてYが使用されます。

Yを省略すると、区切り文字としてカンマ(,)が使用されます。

 

 

【Date And Time Function(日付、時刻関数)】

関数名

用途

備考

date(X,Y,Z, ...)

Xに指定された日付データをYYYY-MM-DD形式で返します。

Y、Zには指定した日付、時刻を加工するための指定ができます。

【日付、時刻の加算および減算】

NNN years

NNN months

NNN days

NNN hours

NNN minutes

NNN.NNNN seconds

※NNN:+n、-nで加算、減算する日時を指定。

【最初の日、最後の日】

start of year

start of month

start of day

【指定した曜日の日】

weekday N

※N:曜日を表す数値を指定します。0が日曜、6が土曜になります。

【UNIXタイムスタンプの日】

unixepoch

【ローカルタイムゾーンでの表示】

localtime

【UTCタイムゾーンでの表示】

utc

  • 文字列タイプの場合は以下の書式のみ有効です。

    YYYY-MM-DD

    YYYY-MM-DD HH:MI

    YYYY-MM-DD HH:MI:SS

    YYYY-MM-DD HH:MI:SS.SSS

  • 日付タイプの場合は内部でYYYY-MM-DD HH:MI:SSに変換します。有効な書式は「「日付タイプ」を参照。

time(X,Y,Z, ...)

Xに指定された時刻データをHH:MM:SS形式で返します。

Y、Zに関してはdate関数と同様。

 

datetime(X,Y,Z,...)

Xに指定された日付および時刻データをYYYY-MM-DD HH:MM:SS形式で返します。

Y、Zに関してはdate関数と同様。

 

strftime(X,Y,Z,...)

Yに指定された日付および時刻データをXに指定された形式で返します。

Y、Zに関してはdate関数と同様。

 

 

【Core Function(コア関数)】

関数名

用途

備考

abs(x)

数値の絶対値を返します。

 

coalesce(X,Y,...)

指定した2つ以上のカラムで最初のNULL以外のカラムを返します。

 

glob(X,Y)

YがXで指定したパターンにマッチすれば1を返します。しない場合は0を返します。

 

ifnull(X,Y)

指定した2つのカラムで最初のNULL以外のカラムを返します。

 

hex(X)

BLOB型の値を16進表示で返します。

 

like(X,Y)

YがXで指定したパターンにマッチすれば1を返します。しない場合は0を返します。

大文字と小文字の区別はしません

like(X,Y,Z)

YがXで指定したパターンにZを除き、マッチすれば1を返します。しない場合は0を返します。

 

lower(X)

引数に指定した文字列を小文字に変換した値を返します。

 

upper(X)

引数に指定した文字列を大文字に変換した値を返します。

 

ltrim(X)

文字列(X)の先頭から半角スペースを削除した値を返します。

 

ltrim(X,Y)

文字列(X)の先頭から削除対象文字(Y)を削除した値を返します。

 

round(X,Y)

数値(X)の小数点以下の桁数(Y)で四捨五入した結果を返します。例えば、Yに2を指定した場合は、小数点第3位を四捨五入します。

 

rtrim(X)

文字列(X)の最後から半角スペースを削除した値を返します。

 

rtrim(X,Y)

文字列(X)の最後から削除対象文字(Y)を削除した値を返します。

 

substr(X,Y,Z)

文字列(X)から部分的に文字列を取得します。開始位置(Y)で指定した位置から文字数(Z)だけ取得します。

 

trim(X)

文字列(X)の両側の半角スペースを削除した値を返します。

 

trim(X,Y)

文字列(X)から指定の文字(Y)を削除した値を返します。

 

max(X,Y,...)

指定された引数の最大値を返します。

 

min(X,Y,...)

指定された引数の最小値を返します。

 

nullif(X,Y)

XとYを比較し、同じ値の場合はNULLを返し、異なっていればXを返します。

 

quote(X)

シングルクォーテーションで囲んだ値を返します。

  • 数値タイプが指定された場合はそのまま返却します。

  • 値に「'(シングルクォーテーション)」があった場合は「''(シングルクォーテーション2つ)」に変換され返却します。

random()

乱数を発生させ、その値を返します。

 

replace(X,Y,Z)

文字列(X)の指定した文字(Y)を指定文字(Z)に置換します。

 

注意

こちらに記載のない関数については動作は保証しません。

表3.3 演算子

演算子

使用方法

説明

+

A+B

AにBを加算

-

A-B

AからBを減算

*

A*B

AとBを乗算

/

A/B

AをBで除算

%

A%B

AをBで除算した余り

= 備考 =

入力ファイル、マッチングファイル、変数などの参照型($INUMや$INAME)を関数内に利用し、さらにその値に特定文字列を結合し評価を行う場合「||(パイプ)」を使用し文字列結合を行ってください。

例)like(X,Y)関数にて%を使用したあいまい検索を行う場合

 select [col1] from [vt] where like('%'||'ABC'||'%',[col1])