SQL - 如何根据ANY结果连接字符串?

时间:2011-12-02 04:17:04

标签: sql sql-server sql-server-2008 any

我正在尝试编写一个聚合多行的查询,并返回一个字符串值,以指示每列是否包含值。它需要检查每一列,如果列包含'true'值,则连接字符串结果以表示如此。

给定(在SQL Server 2008上):

      Col1 | Col2
Row1: 0      0
Row2: 0      1 

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

我的假设是我需要将CASEIF语句与ANY运算符组合在一起,但到目前为止语法都让我感到厌烦。

1 个答案:

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