2005年05月02日

[ テクニカルエンジニア(データベース)/H17受験記 ]

SQL: COALESCE関数

COALESCE関数

PostgreSQL 8.0.0 文書9.13.2. COALESCE

COALESCE(value [, ...])
COALESCE関数は、NULLでない自身の最初の引数を返します。全ての引数がNULLの場合にのみNULLが返されます。データを表示の目的で取り出す際、NULL値の代わりにデフォルト値を使う場合、時として便利なことがあります。以下に例を示します。

SELECT COALESCE(description, short_description, '(none)') ...

CASE式同様、COALESCEは結果を決定するために必要でない引数を評価しません。つまり、非NULL引数が見つかれば、その右側にある引数は評価されません。

SQL への準拠 > サポートされている機能 に「COALESCE」が含まれているので,標準SQL準拠ということですな。

Microsoft SQL Server 2000 > SDKドキュメント > Transact-SQLリファレンス > COALESCE

COALESCE
引数の中から、最初の NULL でない式を返します。

構文
COALESCE ( expression [ ,...n ] )

DB2.jp > SQL 解説書 > COALESCE

COALESCE は、その値がヌル値以外の最初の引き数を戻します。

OTN > Oracle Database SQL リファレンス 10g リリース1(10.1)

COALESCE は、式のリストの最初のNULL でないexpr を戻します。1 つ以上のexpr が、リテラルNULL 以外である必要があります。すべてのexpr がNULL と評価された場合、このファンクションはNULL を戻します。
すべてのexpr が数値データ型、または暗黙的に数値データ型に変換可能な数値以外のデータ型である場合、Oracle データベースは、数値の優先順位が最も高い引数を判断し、残りの引数をそのデータ型に暗黙的に変換して、そのデータ型を戻します。

H17本試験で初見の関数。。。いやぁ。。ビビりましたw
JIS(JIS検索)のPDFには載っていませんでした。
ANSI/ISO9075-2には載っていましたが。。。

Posted by g@kko at 2005/05/02 22:34 | 個別記事表示 | コメントを見る (4) |
この記事をLicWikiに埋め込む:
[ テクニカルエンジニア(データベース)/H17 ]

H17午後I 問3 SQL俯瞰

H17午後I 問3
設問1(1):
LEFT JOIN

SELECT 会員種別名, 会員種別 LEFT OUTER JOIN
 ( SELECT 会員区分, 利用区分, COUNT( * ) AS 会員数 FROM 会員
  WHERE ( 退会年月日 IS NULL OR 退会年月日 < '2005-03-31' )
  AND 入会年月日 >= '2005-03-31'
  GROUP BY 会員区分, 利用区分 ) AS 現会員 ON ( 会員種別.会員区分 = 現会員.会員区分 AND 利用区分.利用区分 = 現会員.利用区分 )
  LEFT OUTER JOIN
 ( SELECT 会員区分, 利用区分, COUNT( * ) AS 利用回数
  FROM 利用履歴, 会員
  WHERE 会員.会員番号 = 利用履歴.会員番号
  AND 利用年月日 BETWEEN '2005-03-01' AND '2005-03-31'
  GROUP BY 会員区分, 利用区分 ) AS 利用 (一部省略)
  LEFT OUTER JOIN
 ( SELECT 会員区分, 利用区分, COUNT( * ) AS 入会者数 FROM 会員
  WHERE 入会年月日 BETWEEN '2005-03-01' AND '2005-03-31'
  GROUP BY 会員区分, 利用区分 ) AS 入会 (一部省略)
  LEFT OUTER JOIN
 ( SELECT 会員区分, 利用区分, COUNT( * ) AS 退会者数 FROM 会員
  WHERE 退会年月日 BETWEEN '2005-03-01' AND '2005-03-31'
  GROUP BY 会員区分, 利用区分 ) AS 退会 (一部省略)
WHERE 会員種別.利用区分 = 利用区分.利用区分
ORDER BY 会員種別名

Posted by g@kko at 2005/05/02 22:25 | 個別記事表示 | コメントを見る (0) |
この記事をLicWikiに埋め込む: