繁体   English   中英

使用Varchar SQL Server 2008的Concat NULL

[英]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

当value不为null时,此查询将返回正确的insert inly。 如果value为null,则返回带有'NULL'的insert,这是不正确的,因为它将作为varchar而不是null值插入。 如果删除'',则整个结果将为null。

编辑-可能将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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM