1. ホーム
  2. sql-server

[解決済み] SQLでNaN値をNULLに、またはNaNを0に変換する

2022-03-01 17:28:06

質問

レジストリにNaN値を含む値があります(MATLABから来たものです)。SQLでこれらをNULL、またはできれば0に変換するにはどうしたらよいでしょうか?

どのように解決するのですか?

SQL Server のテーブルにインポートしている場合

update tbl
set theColumn = NULL
WHERE theColumn = 'NaN'

これは、カラムの値が文字列 'NaN' の場合、NULL に変換するものです。 カラムに'NaN'を含めるには、varcharでなければならないので、0を好むなら、それは文字列'0'になります。

update tbl
set theColumn = '0'
WHERE theColumn = 'NaN'

select文の中では、以下のどちらかを使用することができます。

SELECT NULLIF(theColumn, 'NaN') as NullifiedTheColumn, ...
SELECT CASE theColumn when 'NaN' then '0' else theColumn end as ZeroedTheColumn, ...