0

我正在尝试编写一个聚合许多行并返回单个字符串值的查询,以指示每列是否包含一个值。它需要检查每一列,如果该列包含“真”值,则连接字符串结果以表明这一点。

给定(在 SQL Server 2008 上):

      Col1 | Col2
第 1 行:0 0
第 2 行:0 1

我需要一个结果说明“Col1 没有真,Col2 有真”(逗号无关紧要)。

我的假设是我需要将CASEorIF语句与ANY运算符组合在一起,但到目前为止,语法使我无法理解。

4

1 回答 1

2

以下查询将产生以下结果:Col1 has no true, Col2 has true对于您的数据:

SELECT CASE
          WHEN Col1Total = 0 THEN 'Col1 has no true'
          ELSE 'Col1 has true'
       END + ', ' +
   CASE
      WHEN Col2Total = 0 THEN 'Col2 has no true'
      ELSE 'col2 has true'
   END AS yourResult
FROM 
(
   SELECT SUM(Col1) AS Col1Total, SUM(Col2) AS Col2Total
   FROM yourTable
) AS t
于 2011-12-02T04:21:31.090 回答