簡體   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