NULL
を使用しないでnvarchar
列をNULL
に連結するにはどうすればいいですか? SELECT
を使用してINSERT
スクリプトを作成しますが、値がNULL
の場合はNULL
になります。Varchar SQL Server 2008でConcat NULLを使用
SELECT TOP 10
'IF NOT EXISTS(SELECT 1 FROM tblParameterKey
WHERE keyNames='''
+ CAST(ISNULL([keyNames], 'NULL') AS NVARCHAR(255)) + ''')
BEGIN
INSERT INTO tblParameterKey VALUES(''' + CAST(ISNULL([keyNames], 'NULL') AS NVARCHAR(255))+''')
END'
FROM tblParameterKey
このクエリは、値がnullでない場合に正しい挿入を返します。値がnullの場合は、NULL値ではなくvarcharとして挿入されるため、NULLが正しく挿入されません。私が ''を削除すると、全体の結果はnullになります。
クエリを実行する前に 'keyNames'がnullであるかどうかチェックできませんか? –
@JoshuaDuxburyもし私がそれを削除した場合、全体の結果はnullになります。これは+演算が数学と愚かなSQLサーバで動作するため、NULLを結果として文字列の残りの部分にNULLを追加しようとしているからです。 – Nogi
私は、 'keyNames'はtblParamaterKeyテーブルから来ていますか? –