2011-03-14 30 views
4

这是可能返回的所有列在查询中的空列(NOT NULL)或空行的情况下,实际的查询返回任何行是否有可能从Sql Server返回空行?

+0

因此,假设您的查询返回0行,你想要显示什么?因为当你需要的行时,返回所有列是多余的。 – 2011-03-14 10:30:20

+0

什么是空列如果不为空? – RichardTheKiwi 2011-03-14 10:35:56

+0

哦谢谢,我得到了你的注意力理查德,我正在找你,因为你definetly有答案...看到我的另一个问题... http://stackoverflow.com/questions/5297181/column-does-not-allow- nulls – 2011-03-14 10:37:30

回答

10

一般来说,如果你必须有一个空行返回..

如果原始查询是

select a,b,c from tbl 

你可以把它变成一个子查询

select t.a,t.b,t.c 
from (select 1 as adummy) a 
left join (
    select a,b,c from tbl -- original query 
) t on 1=1 

确保查询永远会有至少一个的行数。

+0

好吧,让我试试.. .. – 2011-03-14 10:39:27

+0

非常好...不是一个推荐,但一个聪明的解决方案。花了我好几分钟才弄明白*(但那是我的偏见)*。 – 2011-03-14 11:10:57

3

如果你的目标是没有记录返回查询,或与一个空的记录/数据集,下面应该没有任何先前的知识工作的原始查询:

SELECT * FROM (myOriginalQuery) as mySelect WHERE 0 = 1 
相关问题