DECLARE @tbl TABLE
(
Id INT IDENTITY(1,1),
p1 VARCHAR(10) NULL,
p2 VARCHAR(10) NULL,
p3 VARCHAR(10) NULL,
p4 VARCHAR(10) NULL,
p5 VARCHAR(10) NULL,
p6 VARCHAR(10) NULL,
p7 VARCHAR(10) NULL,
p8 VARCHAR(10) NULL,
p9 VARCHAR(10) NULL,
p10 VARCHAR(10) NULL,
Fee VARCHAR(10)
)
INSERT INTO @tbl(p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, Fee) VALUES( NULL, 'ENG', NULL, NULL, NULL , NULL, NULL , NULL, NULL, NULL, NULL)
INSERT INTO @tbl(p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, Fee) VALUES( NULL, NULL, NULL, NULL, 'POL', NULL, NULL, NULL, NULL, NULL, NULL)
INSERT INTO @tbl(p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, Fee) VALUES( NULL, 'ENG', NULL, 'ECO', NULL, NULL, NULL, NULL, NULL, NULL, NULL)
INSERT INTO @tbl(p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, Fee) VALUES( NULL, 'ENG', 'TEL', 'ECO', 'HIS', 'POL', NULL, NULL, NULL, NULL, NULL)
INSERT INTO @tbl(p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, Fee) VALUES( NULL, NULL, NULL, 'ECO', NULL, NULL, NULL, NULL, NULL, NULL, NULL)
SELECT p1, p2,p3,p4,p5,p6,p7,p8,p9,p10, a.NoOfColumnWithoutNull,
Fee = CASE WHEN a.NoOfColumnWithoutNull = 2 THEN 1200
WHEN a.NoOfColumnWithoutNull = 3 THEN 1800
ELSE 0 END
FROM (
SELECT p1, p2,p3,p4,p5,p6,p7,p8,p9,p10,
NoOfColumnWithoutNull =
IIF(LEN(p1) > 0,1,0) + IIF(LEN(p2) > 0,1,0) + IIF(LEN(p3) > 0,1,0) + IIF(LEN(p4) > 0,1,0) + IIF(LEN(p5) > 0,1,0) + IIF(LEN(p6) > 0,1,0)
+ IIF(LEN(p7) > 0,1,0) + IIF(LEN(p8) > 0,1,0) + IIF(LEN(p9) > 0,1,0) + IIF(LEN(p10) > 0,1,0)
FROM @tbl ) AS a