SQL - Как я могу объединить строку на основе любого результата? - PullRequest
0 голосов
/ 02 декабря 2011

Я пытаюсь написать запрос, который объединяет много строк и возвращает одно строковое значение, чтобы указать, содержит ли каждый столбец значение. Необходимо проверить каждый столбец, и если столбец содержит значение «истина», то объединить строковый результат, чтобы указать это.

Дано (в SQL Server 2008):

      Col1 | Col2
Row1: 0      0
Row2: 0      1 

Мне нужен результат о том, что «Col1 не имеет истины, Col2 имеет истину» (запятая не имеет значения).

Я предполагаю, что мне нужно объединить оператор CASE или IF с оператором ANY, но пока синтаксис ускользает от меня.

1 Ответ

2 голосов
/ 02 декабря 2011

Следующий запрос даст эти результаты: 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...