SQL SQLでISNULL()が使えない…? Nozomu.Kon 2016年1月29日 / 2017年7月28日 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 ABOUT ME Nozomu.Kon 集客導線、SNS導線、広告数値自動取得、LP/HP/CSS、ファネルツールなどなど個人・法人のスモールビジネスをIT/AIのチカラでフルサポートしています。 BLOG:https://embedded-property.net