Можно ли считать определенный сценарий в SQL Server?

У меня таблица выглядит так:

ID | I | II | III | IV | V | =============================== 1 | 1 | 0 | NULL|NULL|NULL| 2 |NULL|NULL|NULL | 0 | 1 | 3 | 1 | 0 | 0 |NULL|NULL| 4 |NULL|NULL|NULL |NULL| 1 | . . . . . . . . . . . . . . . . . . 

Я использую SQL Server 2014.

Я ищу, чтобы подсчитать количество идентификаторов, имеющих сценарий вроде # 1 и # 3. Есть ли запрос, который может это сделать? Благодаря!

SELECT COUNT (ID) FROM YourTabel WHERE ISNULL (I, -1)! = – 1

Desc: Я – ваше имя столбца, и вы можете указать больше столбцов, где условие.

Я предполагаю, что когда вы пишете сценарий вроде # 1 и # 3, вы действительно хотите подсчитать строки, которые имеют значения, равные тем, что имеет строка 1 или строка 3. Если это так, вы бы сделали что-то подобное.

 select count(*) from YourTable where (I = 1 and II = 0 and III is null and IV is null and V is null) or (I = 1 and II = 0 and III = 0 and IV is null and V is null); 

В качестве альтернативы вы можете упростить приведенный выше запрос до следующей формы:

 select count(*) from YourTable where (I = 1 and II = 0 and (III = 0 or III is null) and IV is null and V is null); 

Возможно, что-то вроде этого – то, что вы ищете:

 select * from YourTable where coalesce(I, II, III, IV, V) is not null; 

Или это:

 select ValidCnt = sum(case when coalesce(I, II, III, IV, V) is not null then 1 else 0 end), InvalidCnt = sum(case when coalesce(I, II, III, IV, V) is null then 1 else 0 end) from YourTable; 

Надеюсь это поможет,

 CREATE TABLE Joe ( ID INT , I int NULL, II int NULL, III int NULL, IV int NULL, V int NULL) INSERT INTO Joe VALUES (1, 1, 0, NULL, NULL, NULL) INSERT INTO Joe VALUES (2, NULL, NULL, NULL, 0, 1) INSERT INTO Joe VALUES (3, 1, 0, 0, NULL, NULL) INSERT INTO Joe VALUES (4, NULL, NULL, NULL, NULL, 1) -- SELECT * FROM Joe SELECT J.* FROM Joe J JOIN ( SELECT J.ID,Count(0) Counter FROM Joe J WHERE JI IS NOT NULL AND JV IS NULL GROUP BY J.Id) JoeCounts ON J.Id = JoeCounts.Id 
  • Ошибка или функция SQL Server? Преобразование десятичных чисел
  • Рассчитать скидку между неделями
  • Как сравнить datetime2 с datetime
  • SQL Server Change Data Capture - Захват пользователя, внесшего изменения
  • Как вернуть значение на основе последней доступной временной метки, если точное время недоступно?
  • мм / дд / гг. ДАТА
  • SQL SELECT Название месяца на украинском языке
  • Встроенная в память таблица, а не в памяти?
  • Ошибка при развертывании пакета SSIS - Не удалось создать AppDomain «SSISDB.dbo
  • Службы интеграции SQL Server отсутствуют в установке SQL Server 2014
  • Получить список столбцов в таблице temp в SQL Server
  • Давайте будем гением компьютера.