根据sql server中的第1列对第2列上的不同值进行分组 请考虑下面的例子: id name 1234 maria 1235 tamas 1236 helia 1234 maria 1235 jack 1235 david
我要做的是根据id对第二列上的不同值进行分组:根据sql server中的第1列对第2列上的不同值进行分组 请考虑下面的例子: id name 1234 maria 1235 tamas 1236 helia 1234 maria 1235 jack 1235 david,sql,sql-server,sql-server-2008,select,Sql,Sql Server,Sql Server 2008,Select,我要做的是根据id对第二列上的不同值进行分组: id name id name id name 1234 maria 1235 tamas 1236 helia 1235 jack 1235 david 我不确定,但我想我应该在id上使用游标,然后根据该id选择第二列,但我没有成功。有人能帮我吗?试试这个: SELECT A.id, MAX
id name id name id name
1234 maria 1235 tamas 1236 helia
1235 jack
1235 david
我不确定,但我想我应该在id上使用游标,然后根据该id选择第二列,但我没有成功。有人能帮我吗?试试这个:
SELECT A.id, MAX(STUFF(B.name, 1, 1, '')) AS name
FROM tableA A
CROSS APPLY(SELECT ',' + A1.name FROM tableA A1 WHERE A.id = A1.id FOR XML PATH('')) AS B (name)
GROUP BY A.id
Distinct
关键字应解决以下问题:
declare @test table ( id int, name varchar(20))
insert into @test values
(1234,'maria'),
(1235,'tamas'),
(1236,'helia'),
(1234,'maria'),
(1235,'jack'),
(1235,'david')
select distinct id,name from @test
这将在单独的表中给出它们,但@Deepshika解决方案也可以
DECLARE @ID INT
DECLARE @getID CURSOR
SET @getID = CURSOR FOR
select distinct id
from [work].[dbo].[FORM105]
order by id
OPEN @getID
FETCH NEXT
FROM @getID INTO @ID
WHILE @@FETCH_STATUS = 0
BEGIN
select distinct id,name
from [work].[dbo].[FORM105]
where id=@ID
FETCH NEXT
FROM @getID INTO @ID
END
CLOSE @getID
DEALLOCATE @getID
tamas、jack、david,这些是单独的行吗?用标题值以表格形式显示预期结果。@wewesthemenace是,请看一下这个问题more@Veera请再次查看问题谢谢您的帮助@Saharsh Shah,但我得到了这个错误:关联名称“A”在A中多次指定,从clausethank您这么多,但它不会给我不同的值,它会给我该id的所有值,都在一行中,以,但是我想要的是把一些像我在问题中包含的一样的东西放出来,答案是如何的,但我想把它们放在单独的表格中,出于这个原因,最后我使用游标,虽然这不是一个好的解决方案