add batch remove batch split batch comment selection show hidden batches hide batch highlight batch
db<>fiddle
donate feedback about
By using db<>fiddle, you agree to license everything you submit by Creative Commons CC0.
CREATE TABLE myTable (
col1 VARCHAR(10),
col2 VARCHAR(10),
col3 VARCHAR(10),
col4 VARCHAR(10),
col5 VARCHAR(10),
col6 VARCHAR(10),
col7 VARCHAR(10)
);
INSERT INTO myTable VALUES
(NULL, 'txt1', NULL, NULL, NULL, NULL, NULL),
('txt2', NULL, NULL, NULL, NULL, NULL, NULL),
(NULL, 'txt3', NULL, NULL, NULL, NULL, NULL),
(NULL, NULL, NULL, NULL, 'txt4', NULL, NULL);
4 rows affected
DECLARE @columnList VARCHAR(100);
SET @columnList = 'col1,col2,col5';
SET @columnList = REPLACE(@columnList, ',', ' AS colName FROM myTable UNION ALL SELECT ');

EXEC('SELECT * FROM (SELECT ' + @columnList + ' AS colName FROM myTable)t WHERE NOT t.colName IS NULL');
colName
txt2
txt1
txt3
txt4
DECLARE @columnList VARCHAR(100);
SET @columnList = 'col1,col2,col5';

EXEC('SELECT colName FROM (SELECT ' + @columnList + ' FROM myTable) t1 UNPIVOT (colName FOR columnNames IN (' + @columnList + ')) AS t2');
colName
txt1
txt2
txt3
txt4