3
请告诉我如何获取特定行的列值= 123的列名称。提前感谢。要从表中获取具有特定值的列名称
请告诉我如何获取特定行的列值= 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
这是一个不寻常的事情要去做,不是特别容易在纯SQL做..也许,如果你给你的问题的详细信息,有人能提出一个更好的办法。 – Blorgbeard 2011-04-12 07:35:10
如果您使用其他编程语言连接到SQL,则只需从SQL加载整行,然后检查应用程序中的每个列可能会更容易。 – Blorgbeard 2011-04-12 07:36:02
对于特定的行,我将requestID作为唯一标识,而列名称是联系人的角色。我是否可以获得特定助理的所有角色,比如说ID = 1916,其中1916将是列值,角色将是列名。 – jACOB 2011-04-12 07:40:56