首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >ISNULL() On Value,但如果不是Null,则使用引号

ISNULL() On Value,但如果不是Null,则使用引号
EN

Stack Overflow用户
提问于 2014-03-20 21:16:12
回答 1查看 1.5K关注 0票数 0

我正在构建动态SQL语句。我正在检查null值,如果值不是null,则在参数值周围放置单引号。在下面的@TEST_GU中是一个字符串参数。

代码语言:javascript
代码运行次数:0
运行
复制
BEGIN TRAN
DECLARE @SQL nvarchar(max)
SELECT @SQL = 'UPDATE [THIS IS A TABLE]
SET [TEST_GU]=' + '''' + ISNULL(@TEST_GU,'') + ''''+', 
+ ' SELECT [TEST_GU] FROM 
[THIS IS A TABLE]
WHERE [TEST_GU] =' + '''' + ISNULL(@TEST_GU,'') + '''' +''
PRINT LEN(@SQL)
EXEC (@SQL)
COMMIT

这是不起作用的,因为如果它是null,它最终会在空值周围放置引号,从而使整个语句变得不格式化。因此,我的问题是,在上述格式中,如果null使用ISNULL方法的第二个参数(在本例中为空''),是否可以检查空值。如果不是null,则将参数值放在单引号中。

EN

回答 1

Stack Overflow用户

发布于 2014-03-20 21:24:33

只需将引号放入isnull()

代码语言:javascript
代码运行次数:0
运行
复制
SELECT @SQL = 'UPDATE [THIS IS A TABLE]
SET [TEST_GU]=' + '''' + ISNULL(''''+@TEST_GU+'''','') + ''''+', 
+ ' SELECT [TEST_GU] FROM 
[THIS IS A TABLE]

如果值为NULL,则级联将返回NULL,因此它仍然可以满足您的需要。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22545261

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档