SQLnvlと同等-if / caseステートメントなし&isnull&coalesce
質問
SQLにnvl()と同等の関数はありますか?
または、特定のシナリオで同じように使用するのに十分近いものですか?
更新:
ifステートメントなし
caseステートメントなし
isnullなし
合体なし
ジェネラコディセタグプレ
解決
Informixを使用しているようです。
AFAIK、そこにデコードがあります:
DECODE(field, NULL, 'it is null, man', field)
はNVL(field, 'it is null, man')
と同じ結果をもたらすはずです
使用しているRDBMSの正確な名前とバージョンを投稿してください。
他のヒント
SQL Server: IsNullまたはCOALESCE http://msdn.microsoft.com/en-us/library/ms184325 aspx
Sybase: isnull関数 http://infocenter.sybase.com/help/index.jsp?topic=/com.sybase.help.ase_15.0.blocks/html/blocks/blocks162.htm
Postgres: 十分にチェックしていませんが、見つかりませんでした。どこがNULLであるかを選択し、ここからビルドすることをお勧めします http://archives.postgresql.org/pgsql-sql/1998- 06 / msg00142.php
DB2-COALESCE http://publib.boulder.ibm.com/infocenter/db2luw/v8/index.jsp?topic=/com.ibm.db2.udb.doc/admin/r0000780.htm >
800エラーを生成しているDECODEステートメントの問題は単純です。'01/01/2009'
は文字列として扱われ、実際にエラーを生成するのは4番目の引数です。
DECODEステートメントの入力と出力は異なるデータ型である可能性があるため、この場合、エンジンではより明示的にする必要があります。(purge_date
を文字列または文字列'01/01/2009'
としてキャストするか、文字列引数を日付または元の日付として解析しますか?エンジンが知る方法はありません。
これを試してください: ジェネラコディセタグプレ
その3番目の引数を次のように書くこともできます: ジェネラコディセタグプレ
バージョンと個人的な好みによって異なります。