Строка считает запрос Sql - PullRequest
0 голосов
/ 01 февраля 2019

Я хочу, чтобы результат в запросе Sql

id1     id2     id3     Count Id
A001    A001    A001    3
A001    NULL    A001    2
A001    NULL    NULL    1

Ответы [ 2 ]

0 голосов
/ 01 февраля 2019

В SQL Server я бы использовал VALUES конструкцию:

SELECT t.*,
       (SELECT COUNT(tt.ids) FROM ( VALUES (t.id1), (t.id2), (t.id3) ) tt(ids)
       ) as Count_Id
FROM table t;

В стандартном SQL вы можете использовать CASE Выражение:

SELECT t.*,
       ( (CASE WHEN ID1 IS NOT NULL THEN 1 ELSE 0 END) +
         (CASE WHEN ID2 IS NOT NULL THEN 1 ELSE 0 END) +
         (CASE WHEN ID3 IS NOT NULL THEN 1 ELSE 0 END) 
       ) AS Count_Id
FROM table t
0 голосов
/ 01 февраля 2019

вы найдете что-то вроде ниже

 select id1,id2,id3, 
case when id1 is not null then 1  else 0 end+ 
case when id2 is not null then 1 else 0 end+
case when id3 is not null then 1 else 0 end as val
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...