InT*_*ons 15 sql sql-server sql-server-2008
我的SQL表如下
City_Code Post_Code Post_Code_Description
100 A1 ABC
100 C8 XYZ
100 Z3 MNO
200 D4 LMN
300 E3 IJK
300 B9 RST
Run Code Online (Sandbox Code Playgroud)
它是city_code和Post_Code之间的映射.一个City_Code有很多邮政编码.现在我想运行一个Query来获得类似的内容
City_Code Post_Code Post_Code_Description
100 A1,C8,Z3 ABC,XYZ,MNO
200 D4 LMN
300 E3,B9 IJK,RST
Run Code Online (Sandbox Code Playgroud)
你可以帮我解决一下这个SQL表如下
Joe*_*eph 24
试试这个:
SELECT City_Code,
Post_Code =
STUFF((SELECT ', ' + Post_Code
FROM your_table b
WHERE b.City_Code = a.City_Code
FOR XML PATH('')), 1, 2, ''),
Post_Code_Description=
STUFF((SELECT ', ' + Post_Code_Description
FROM your_table b
WHERE b.City_Code = a.City_Code
FOR XML PATH('')), 1, 2, '')
FROM your_table a
GROUP BY City_Code
Run Code Online (Sandbox Code Playgroud)
如果您使用的是MySQL,则可以使用 GROUP_CONCAT()
select City_Code,
GROUP_CONCAT(Post_Code) Post_Code,
GROUP_CONCAT(Post_Code_Description) post_code_description
from yourtable
group by City_Code
Run Code Online (Sandbox Code Playgroud)
对于SQL Server,您可以使用STUFF()和FOR XML PATH()
select city_code,
Stuff((SELECT ', ' + post_code
FROM yourtable t2
where t1.city_code = t2.city_code
FOR XML path('')),1,1,'') Post_Code,
Stuff((SELECT ', ' + post_code_description
FROM yourtable t2
where t1.city_code = t2.city_code
FOR XML path('')),1,1,'') post_code_description
from yourtable t1
group by city_code
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
42297 次 |
| 最近记录: |