Чтобы получить имена столбцов из таблицы с определенным значением

Скажите, пожалуйста, как получить имена столбцов, где значение столбца = 123 для определенной строки. Спасибо заранее.

-- Test table declare @T table(ID int, Col1 varchar(10), Col2 int, Col3 bit, Col4 varchar(max)) insert into @T values (1, '123', 123, 1, 'Some text long text') -- ID to get one row declare @ID int set @ID = 1 -- Value to search for declare @Val varchar(10) set @Val = '123' select Col.value('local-name(.)', 'varchar(max)') as ColName from (select * from @T where ID = @ID for xml path(''), type) as T(XMLCol) cross apply T.XMLCol.nodes('*') as n(Col) where Col.value('.', 'varchar(10)') = @Val 

результат

 ColName -------- Col1 Col2