我想问如何连接一个nvarchar
列与NULL
没有得到NULL
?我想用SELECT
创建一个INSERT
脚本,但是当任何值为NULL
时,我只能得到NULL
。Concat NULL与Varchar SQL Server 2008
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
当值不为空时,此查询将返回正确的insert inly。如果value为null,则返回插入'NULL',这是不正确的,因为它将作为varchar插入,而不是作为空值插入。如果我删除'',整个结果将变为空。
你能否在执行查询之前检查'keyNames'是否为空? –
@JoshuaDuxbury如果我删除它,整个结果将为空。这是因为+在数学和愚蠢的SQL服务器试图将NULL添加到字符串的其余部分,因此导致NULL。 – Nogi
我看到,是'keyNames'来自tblParamaterKey表吗? –