Первое, что нужно рассмотреть, если пустая строка (''
) считается пустой или нет. Затем вы можете сделать следующее для всей таблицы:
SELECT
COUNT(CASE WHEN T.Col1 IS NULL OR T.Col1 = '' THEN 1 END) Col1Blanks,
COUNT(CASE WHEN T.Col2 IS NULL OR T.Col2 = '' THEN 1 END) Col2Blanks,
COUNT(CASE WHEN T.Col3 IS NULL OR T.Col3 = '' THEN 1 END) Col3Blanks,
COUNT(CASE WHEN T.Col4 IS NULL OR T.Col4 = '' THEN 1 END) Col4Blanks,
COUNT(CASE WHEN T.Col5 IS NULL OR T.Col5 = '' THEN 1 END) Col5Blanks,
COUNT(CASE WHEN T.Col6 IS NULL OR T.Col6 = '' THEN 1 END) Col6Blanks
FROM
YourTable T
Если вам нужно общее их количество (ISNULL
- это функция SQL Server, у каждого DMBS есть один эквивалент):
SELECT
X.Col1Blanks,
X.Col2Blanks,
X.Col3Blanks,
X.Col4Blanks,
X.Col5Blanks,
X.Col6Blanks,
ISNULL(X.Col1Blanks, 0) +
ISNULL(X.Col2Blanks, 0) +
ISNULL(X.Col3Blanks, 0) +
ISNULL(X.Col4Blanks, 0) +
ISNULL(X.Col5Blanks, 0) +
ISNULL(X.Col6Blanks, 0) TotalBlanks
FROM
(
SELECT
COUNT(CASE WHEN T.Col1 IS NULL OR T.Col1 = '' THEN 1 END) AS Col1Blanks,
COUNT(CASE WHEN T.Col2 IS NULL OR T.Col2 = '' THEN 1 END) AS Col2Blanks,
COUNT(CASE WHEN T.Col3 IS NULL OR T.Col3 = '' THEN 1 END) AS Col3Blanks,
COUNT(CASE WHEN T.Col4 IS NULL OR T.Col4 = '' THEN 1 END) AS Col4Blanks,
COUNT(CASE WHEN T.Col5 IS NULL OR T.Col5 = '' THEN 1 END) AS Col5Blanks,
COUNT(CASE WHEN T.Col6 IS NULL OR T.Col6 = '' THEN 1 END) AS Col6Blanks
FROM
YourTable T
) X