sql - 使用 SQL 查询的逗号分隔值

标签 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

它是 city_code 和 Post_Code 之间的映射。一个 City_Code 有多个邮政编码。现在我想运行一个查询来获取如下内容

City_Code     Post_Code    Post_Code_Description
100           A1,C8,Z3     ABC,XYZ,MNO
200           D4           LMN
300           E3,B9        IJK,RST

你能帮我解决这个 SQL 表吗

最佳答案

试试这个:

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

关于sql - 使用 SQL 查询的逗号分隔值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12671117/

相关文章:

sql - 引用的表中没有主键或候选键

sql-server - 无法在 WildFly 10 中安装/运行 SQL Server 驱动程序

sql - 备份特定架构的最佳方法?

sql - 如何选择所有具有以特定数字开头的 bigint 字段的记录?

c# - 使用 HAVING COUNT 对 NHibernate 的 SQL 查询

sql - 如何在 Visual Studio 2013 中为多个 sql 单元测试编写 "pre-test"?

mysql - 多列计数

c# - SQL + Cyrillic 支持 + 参数化查询 + 多项选择

php - 为什么 MySQL 选择日期对于不同的月份不起作用

sql-server - 按纬度/经度搜索半径