S-JIS[2024-08-31] 変更履歴

Tsurugi SQL coalesce関数

TsurugiSQL関数のcoalesceのメモ。


概要

coalesce(コアレス)関数は、 引数の値を順番に見ていって、最初にnullでなかった値を返す関数。
Tsurugi 1.0.0以降。

coalesce(値1, 値2, …)

全ての値がnullだったらnullを返す。

以下の式と同等。

case
  when 値1 is not null then 値1
  when 値2 is not null then 値2
  …
  else null
end

create table test (
  value1 int,
  value2 int,
  value3 int
);

insert into test values
  (1, 2, 3),
  (1, 2, null),
  (1, null, 3),
  (1, null, null),
  (null, 2, 3),
  (null, 2, null),
  (null, null, 3),
  (null, null, null);
tgsql> select coalesce(value1, value2, value3), * from test;
[@#0: INT4, value1: INT4, value2: INT4, value3: INT4]
[1, 1, 2, 3]
[1, 1, 2, null]
[1, 1, null, 3]
[1, 1, null, null]
[2, null, 2, 3]
[2, null, 2, null]
[3, null, null, 3]
[null, null, null, null]
(8 rows)
tgsql> select coalesce(value1, value2, value3, 9), * from test; -- 末尾に固定値を書くと、全てがnullの場合にその値が返る
[@#0: INT8, value1: INT4, value2: INT4, value3: INT4]
[1, 1, 2, 3]
[1, 1, 2, null]
[1, 1, null, 3]
[1, 1, null, null]
[2, null, 2, 3]
[2, null, 2, null]
[3, null, null, 3]
[9, null, null, null]
(8 rows)

Tsurugi SQL関数へ戻る / Tsurugi SQLへ戻る / Tsurugiへ戻る / 技術メモへ戻る
メールの送信先:ひしだま