Hi
I was able to do it this way ..
I hope it helps ..
/*
DROP TABLE #abc
CREATE TABLE #abc
(COL1 varchar(100) NULL,
COL2 varchar(100) NULL,
COL3 varchar(100) NULL,
COL4 varchar(100) NULL,
COL5 varchar(100) NULL,
COL6 varchar(100) NULL )
INSERT INTO #abc select 'total','10','100','total','total','55'
INSERT INTO #abc select '100','12','10','15','12','56'
INSERT INTO #abc select '105','15','102','102','16','40'
INSERT INTO #abc select '111','55','12','200','100','10'
*/
DECLARE @Names VARCHAR(8000)
SELECT @Names = COALESCE(@Names + ', ', '') + a.X
FROM (
SELECT CASE
WHEN (count(col1) > 0)
THEN ''
ELSE 'col1'
END AS x
FROM #abc
WHERE col1 LIKE 'total'
UNION
SELECT CASE
WHEN (count(col2) > 0)
THEN ''
ELSE 'col2'
END
FROM #abc
WHERE col2 LIKE 'total'
UNION
SELECT CASE
WHEN (count(col3) > 0)
THEN ''
ELSE 'col3'
END
FROM #abc
WHERE col3 LIKE 'total'
UNION
SELECT CASE
WHEN (count(col4) > 0)
THEN ''
ELSE 'col4'
END
FROM #abc
WHERE col4 LIKE 'total'
UNION
SELECT CASE
WHEN (count(col5) > 0)
THEN ''
ELSE 'col5'
END
FROM #abc
WHERE col5 LIKE 'total'
UNION
SELECT CASE
WHEN (count(col6) > 0)
THEN ''
ELSE 'col6'
END
FROM #abc
WHERE col6 LIKE 'total'
) a
SELECT @Names = 'select ' + @Names + ' from #abc'
SELECT @Names = replace(@Names, 'select ,', 'select ')
EXEC (@names)