【发布时间】:2013-03-16 10:55:20
【问题描述】:
我正在使用 sp_executesql,因此我可以灵活选择返回的内容。尝试返回没有数据的地方时遇到问题。
例如,我正在尝试查找没有分配所有者的所有行。目前,我的查询编写如下。
if @owner <> ''
Begin
SELECT @sql = @sql + 'and owner LIKE ''%'+@owner+'%'''
END
这使我不必选择所有者。如果我这样做了,它当然会包含在我的查询中。
因为我现在正在尝试添加一条基本上允许我带回未分配所有者的行:
if @owner = 'Unassigned'
BEGIN
SELECT @sql = @sql + 'and owner IS NULL'
END
但是,当我这样做时,它会带回整个列表。想法/建议?
【问题讨论】:
-
发布整个 sql 比能弄明白
-
你能打印出@sql(而不是执行它)并发布结果吗?即使您必须更改表名和字段名?
-
我去掉了很多其他不必要的脚本,但是除了我发布的两个之外,还有更多的IF。我这样做是出于审美目的。
-
您是否在搜索 if owner = 'Unassigned' .... ELSE if owner '' ....(我不得不删除 @ 因为评论只允许一个)
-
可能是它在两种情况下都输入...所有者 = 未分配,所有者是 '' ????并且您选择了 owner = 'unassigned' 并且如果 owner = 'Unassigned' ....它们是大写的和非大写的
标签: sql sql-server null dynamic-sql sp-executesql