0

我想问一下如何在没有得到的情况下连接一nvarchar列?我想使用创建一个脚本,但是当任何值是,我只得到。NULLNULLINSERTSELECTNULLNULL

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”的插入,这是不正确的,因为它将作为 varchar 而不是作为 null 值插入。如果我删除“”,整个结果将变为空。

4

1 回答 1

1

编辑 - 也许将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
于 2017-07-31T10:15:18.760 回答