是否可以从Sql Server返回空行?

时间:2011-03-14 10:28:06

标签: sql sql-server sql-server-2005 sql-server-2008

这是否可以将查询中的所有列作为空列(非空)或空行返回,以防实际查询返回没有行

3 个答案:

答案 0 :(得分: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

这可确保查询的行数始终至少为一个。

答案 1 :(得分:3)

如果您的目标是返回没有记录的查询,或者使用空记录集/数据集,则以下内容应该在没有任何先前原始查询知识的情况下工作:

SELECT * FROM (myOriginalQuery) as mySelect WHERE 0 = 1

答案 2 :(得分:0)

根据Richard的回答,您可以使用UNIONS来给您“东西” ...

select t.a, t.b, t.c
from (select null AS a, null AS b, null AS c
       union ALL
      select a, b, c from tbl)   -- original query
     ) AS t 
on 1=1

'1=1'确实迫使SQL返回某些内容。