【问题标题】:returning the column values as a list or else 0将列值作为列表返回,否则返回 0
【发布时间】:2018-06-07 13:22:30
【问题描述】:

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

我的查询是这样的:

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

它返回给我10,因为1 我希望该列应该返回我的值,或者它应该组合所有行并将该列的值作为1,2,3,4,5,6,7 之类的列表返回给我

【问题讨论】:

  • 你用的是什么数据库?
  • sql server 2012
  • 它应该显示我的值,但它在所有列中显示为 0,屏幕截图是我应该得到的值 prntscr.com/js311w
  • 请添加示例数据和所需结果。现在还不完全清楚你在问什么。

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


【解决方案1】:

这应该可行。

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

【讨论】:

    【解决方案2】:

    如果您只想要结果集中的一行,只需执行以下操作:

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

    来自我的表;

    如果您完全关心性能,更有效的方法是:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-10-14
      • 2016-03-06
      • 1970-01-01
      • 2015-01-18
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多