是否有任何地方可以獲得像這樣的值?將特定列值與SQL結合使用
從
id column_1 column_2
1 abc hello
1 abc world
到
id column_1 column_2
1 abc hello world
非常感謝:)
是否有任何地方可以獲得像這樣的值?將特定列值與SQL結合使用
從
id column_1 column_2
1 abc hello
1 abc world
到
id column_1 column_2
1 abc hello world
非常感謝:)
在MySQL中,你可以使用GROUP_CONCAT,這樣的事情:
SELECT id, column_1, GROUP_CONCAT(column2 SEPARATOR ' ') FROM some_table GROUP BY id, column_1
OP是在Sql Server中... –
哎呀,錯過了標籤。 – xdazz
嗯,這實際上是這樣的:
DECLARE @t TABLE (id integer, column_1 varchar(20), column_2 varchar(20))
INSERT into @t
SELECT 1 ,'abc' ,'hello'
UNION
SELECT 1 ,'abc','world'
SELECT DISTINCT
id, column_1,
(SELECT column_2 + ' ' FROM @t FOR XML PATH('')) column_2
FROM @t
我相信這個表中有更多的數據,而不僅僅是兩行。通過您的查詢,column_2列將顯示column_2中每行的值並列在一起,用於id和column_1的每個組合,我確信這不是原始發佈者想要的內容。 – deutschZuid
正如我所說,相當直接。 :) – aquinas
我明白你的意思了,現在大聲笑。 – deutschZuid
在Sql Server中,您使用FOR XMLcontruct。
在這裏看看這個例子:
SQL Query to get aggregated result in comma seperators along with group by column in SQL Server
我假設在COLUMN_1給定值並不總是對應於ID,反之亦然相同的值。
DECLARE @temptable TABLE (id integer, column_1 varchar(20), column_2 varchar(20))
INSERT into @temptable
select 1 ,'abc' ,'hello'
UNION
select 1 ,'abc','world'
union
select 1, 'def', 'blah'
union
select 2, 'abc', 'world'
union
select 2, 'abc', 'blah'
select id, column_1,
(SELECT column_2 + ' '
FROM @temptable t2
where t2.id = t1.id and t2.column_1 = t1.column_1
FOR XML PATH('')
) new_column_2
from @temptable t1
group by id, column_1
結果:
id column_1 new_column_2
1 abc hello world
1 def blah
2 abc blah world
是的,但相比設計你的模式更好,或者讓表示層太沒效率做到這一點,而不是數據庫層:-) – paxdiablo
@paxdiablo感謝,canyou提供我解決方案? –
@andrain謝謝,這可能用於mssql? –