【SQL Server】記号が含まれる文字を検索できない

例えばA5M2でエクスポートしたExcelファイルのデータをそのままSQL ServerにインポートするとNULL値が、「« NULL »」という文字列で保存されてしまうことがある。

このとき、対象のレコードを抽出したい場合に以下のようなSQLを書いても取得できない。

SELECT
	* 
FROM
	TABLE_NAME
WHERE
	FIELD_NAME = '« NULL »'

この場合は、検索したい文字列の先頭に「N」を付ければOK

SELECT
	* 
FROM
	TABLE_NAME
WHERE
	FIELD_NAME = N'« NULL »'

なので、Updateしたい場合も以下のように書けばOK

UPDATE TABLE_NAME
SET
	FIELD_NAME = null
WHERE
	FIELD_NAME = N'« NULL »'

※データ型がnvarcharの場合