如何在SQL

时间:2017-03-27 13:46:50

标签: sql sql-server sql-server-2008 msbi

如果我在表格中有列

,我有一些问题需要获取数据
CDPRCL          CDITEM              CDSQFT      F162_U
18-020-0056     SOUND SYS           1.00        H
18-020-0056     WET BAR             2.00        D 

正如您所看到的,CDPRCL有两个相同的数字,但在其他列中有差异数据。 我想要这种格式的数据,请查看列F162_U

的结果
CDPRCL          CDITEM              CDSQFT      F162_U
18-020-0056     SOUND SYS           1.00        H,D
18-020-0056     WET BAR             2.00        H,D

如何获得这个。请帮忙。 提前谢谢

2 个答案:

答案 0 :(得分:0)

请尝试这样的查询

select 
A.CDPRCL,
A.CDITEM,
A.CDSQFT,
STUFF((
 SELECT ','+ B.F162_U  
 FROM Yourtable B 
 WHERE B.CDPRCL=A.CDPRCL
 ORDER BY B.F162_U 
 FOR XML PATH ('')
 ),1, 1, '') AS  F162_U

from 
Yourtable A

答案 1 :(得分:0)

选择XML路径,如下所示:

create table TestTable (CDPRCL varchar(20), CDITEM varchar(20), CDSQFT  float, F162_U varchar(10))

Insert into TestTable  values('18-020-0056', 'SOUND SYS', 1.00, 'H')
Insert into TestTable  values('18-020-0056', 'WET BAR', 2.00, 'D')

Select CDPRCL, CDITEM, CDSQFT, substring((Select ', ' + F162_U
            From TestTable Tbl2
            Where Tbl1.CDPRCL = Tbl2.CDPRCL
            For XML PATH ('') ),2,1000)
from TestTable Tbl1