我有一个EAV表(每一行都有简单的键/值),我需要从两行中提取‘值’,并将它们连接到具有单列的单行中。我似乎不能通过的部分,我只是有轴心直。有人能帮我解决这个问题吗?
Declare @eavHelp Table
(
[Key] VARCHAR (8) NOT NULL,
[Value] VARCHAR (8) NULL
)
Insert Into @eavHelp Values ( 'key1' , 'aaa' )
Insert Into @eavHelp Values ( 'key2' , 'bbb' )
Select * From @eavHelp
Pivot
( Min( [Value] )
For [Value] in ( hmm1 , hmm2 )
)
as Piv Where [Key] = 'key1' or [Key] = 'key2'这就是说:
Key hmm1 hmm2
-------- -------- --------
key1 NULL NULL
key2 NULL NULL但我想做的是:
hmmmX
-----
aaa;bbb发布于 2011-09-10 02:25:40
并不真的需要旋转。
编辑以添加新要求(;分隔符):
SELECT hmmmX = STUFF((SELECT ';' + [Value] FROM @eavHelp
WHERE [Key] IN ('key1', 'key2')
FOR XML PATH(''), TYPE).value('.', 'VARCHAR(MAX)'), 1, 1, '');发布于 2012-10-13 23:33:00
Declare @eavHelp Table
(
[Key] VARCHAR (8) NOT NULL,
[Value] VARCHAR (8) NULL
)
Insert Into @eavHelp Values ( 'key1' , 'aaa' )
Insert Into @eavHelp Values ( 'key2' , 'bbb' )
declare @concat nvarchar(max); select @concat =''
select @concat =@concat+case when len(@concat)>0 then '; ' else '' end + value from @eavHelp
select @concathttps://stackoverflow.com/questions/7365742
复制相似问题