将列值作为列表返回,否则为0

时间:2018-06-07 13:22:31

标签: sql sql-server sql-server-2012

我有一个查询,我正在尝试获取查询的结果,查询可以有多行或者它可以为空,我正在尝试如果它是空的,它应该返回0为我正在寻找的列被称为sequence

我的查询是这样的:

select CASE WHEN COUNT(1) > 0 THEN 1 ELSE 0 END AS Sequence
            from dbo.mytable

它返回10,对于1我希望该列应该返回值,或者它应该组合所有行并将该列的值作为列表返回{{{ 1}}

2 个答案:

答案 0 :(得分:0)

这应该有用。

SELECT 
CASE WHEN MY_COUNT > 0 THEN 1 ELSE 0 END AS SEQUENCE
FROM
(SELECT COUNT(*) AS MY_COUNT
FROM
DBO.MYTABLE);

答案 1 :(得分:0)

如果您只想在结果集中输入一行,只需执行以下操作:

select (case when count(*) > 0 then 1 else 0 end) as sequence

来自mytable;

如果您完全关心性能,那么效率更高的方法是:

select (case when exists (select 1 from dbo.mytable) then 1 else 0
        end) as sequence