SQLではnullチェックにISNULL()関数をよく利用しますが、このISNULL()を利用するとillegal tokenと怒られてしまいました。
普段業務でよく利用するのはSQL Server2012なので問題なかったのですが、illegal tokenで怒られてしまうのはSQL Server Compact Edition 4.0を利用したシステムだったからでした…
SQL Server Compact EditionにはISNULL()関数は含まれていないのを忘れていました。早速、代替できる関数COALESCE()を利用しました。
SELECT ISNULL(MAX(age), 0) max_age from tblEmployee
SELECT COALESCE(MAX(age), 0) max_age from tblEmployee
case when文を利用してもいいのですが、null評価という意味ではちょっと雑多な感じがしますね。
SELECT (CASE WHEN MAX(age) IS NULL TEHN 0 ELSE MAX(age) END) max_age from tblEmployee
COALESCE()はNULLではない最初の値を返すので、本ケースではCOALESCE()の方がよさそうです。
個別の値を評価するにはCASE WHENの方がいいでしょうね。
case when CASE WHEN MAX case when文 COALESCE illegal token IS NULL TEHN 0 ELSE MAX ISNULL max_age from tblEmployee nullチェック null評価 SELECT COALESCE SELECT ISNULL SQL SQL Server Compact Edition SQL Server Compact Edition 4.0 SQL Server2012 システム 個別 値 普段業務 本ケース 関数COALESCE