DECLARE @T TABLE (Col1 INT, Col2 INT, Col3 INT, Col4 INT ,Col5 INT, Col6 INT, Col7 INT, Col8 INT ,Col9 INT, Col10 INT, Col11 INT, Col12 INT)INSERT INTO @T (Col1, Col2, Col3, Col4)SELECT 1, 2, 3, 4UNION ALL SELECT 5, 6, 7, 8SELECT * FROM @TSELECT TOP 1 nFROM (SELECT TOP 1 * FROM @T) aCROSS APPLY ( VALUES (1, Col1), (2, Col2) ,(3, Col3), (4, Col4) ,(5, Col5), (6, Col6) ,(7, Col7), (8, Col8) ,(9, Col9), (10, Col10) ,(11, Col11), (12, Col12)) b(n, Col)WHERE Col IS NULLORDER BY n
SELECT TOP 1 CASE WHEN Col1 IS NULL THEN 1 WHEN Col2 IS NULL THEN 2 WHEN Col3 IS NULL THEN 3 WHEN Col4 IS NULL THEN 4 WHEN Col5 IS NULL THEN 5 WHEN Col6 IS NULL THEN 6 WHEN Col7 IS NULL THEN 7 WHEN Col8 IS NULL THEN 8 WHEN Col9 IS NULL THEN 9 WHEN Col10 IS NULL THEN 10 WHEN Col11 IS NULL THEN 11 WHEN Col12 IS NULL THEN 12 ENDFROM @T