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
我想问一下如何在不获取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