sql >> Base de Datos >  >> RDS >> Sqlserver

contar el número de columnas que tienen datos para cada fila

Pure Transact SQL (sin utilizar una llamada SQL dinámica que no forma parte de TSQL):

SELECT 
    CASE WHEN c1 IS NULL THEN 0 ELSE 1 END
  + CASE WHEN c2 IS NULL THEN 0 ELSE 1 END
  + CASE WHEN c3 IS NULL THEN 0 ELSE 1 END
  + CASE WHEN c4 IS NULL THEN 0 ELSE 1 END
  + CASE WHEN c5 IS NULL THEN 0 ELSE 1 END
  + CASE WHEN c6 IS NULL THEN 0 ELSE 1 END
  + CASE WHEN c7 IS NULL THEN 0 ELSE 1 END
  + CASE WHEN c8 IS NULL THEN 0 ELSE 1 END
FROM T