您可以使用
DYNAMIC SQL
TagsTable应该具有所有可能的标签
然后,我们可以
SQL使用标签名称进行构造并执行它
create table TagsTable( tagName varchar(256))insert into TagsTable values ('CLIENT')insert into TagsTable values ('FEE')insert into TagsTable values ('ADDRESS')declare @query nvarchar(max)SELECt @query = STUFF((select ',' + 'coalesce(Cast(ClientData as xml).value(''(/XML/' + tagName + ')[1]'', ''varchar(max)''), '''') as ' + tagName +' 'FROM TagsTableFOR XML PATH ('') ), 1,1,'')SET @query = 'SELECt ' + @query + 'FROM dbo.Table2 WITH(NOLOCK)'select @queryexec sp_executesql @query


