Concat NULL 与 Varchar SQL Server 2008

Concat NULL with Varchar SQL Server 2008

我想问一下如何在不获取NULL的情况下将nvarchar列与NULL连接起来?我想使用 SELECT 创建一个 INSERT 脚本,但是当任何值是 NULL 时,我只得到 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

此查询 returns 仅在值不为空时正确插入。如果值为空,它 returns 插入 'NULL' 这是不正确的,因为它将作为 varchar 而不是空值插入。如果我删除“”,整个结果将变为空。

编辑 - 也许将 NULLIF 语句放在查询字符串中,这样它将成为 null 而不是 string null

SELECT TOP 10 
    'IF NOT EXISTS(SELECT 1 FROM tblParameterKey 
                   WHERE keyNames=NULLIF('''
        + [keyNames] + ''', 'NULL') AS NVARCHAR(255))
     BEGIN
         INSERT INTO tblParameterKey VALUES(NULLIF(''' + [keyNames]+''', 'NULL') AS NVARCHAR(255))
     END'
FROM tblParameterKey