我正在尝试编写一个聚合许多行并返回单个字符串值的查询,以指示每列是否包含一个值。它需要检查每一列,如果该列包含“真”值,则连接字符串结果以表明这一点。
给定(在 SQL Server 2008 上):
Col1 | Col2 第 1 行:0 0 第 2 行:0 1
我需要一个结果说明“Col1 没有真,Col2 有真”(逗号无关紧要)。
我的假设是我需要将CASE
orIF
语句与ANY
运算符组合在一起,但到目前为止,语法使我无法理解。
我正在尝试编写一个聚合许多行并返回单个字符串值的查询,以指示每列是否包含一个值。它需要检查每一列,如果该列包含“真”值,则连接字符串结果以表明这一点。
给定(在 SQL Server 2008 上):
Col1 | Col2 第 1 行:0 0 第 2 行:0 1
我需要一个结果说明“Col1 没有真,Col2 有真”(逗号无关紧要)。
我的假设是我需要将CASE
orIF
语句与ANY
运算符组合在一起,但到目前为止,语法使我无法理解。
以下查询将产生以下结果: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