【发布时间】:2014-12-18 09:56:43
【问题描述】:
我有一个 sql (transact sql - SQL server 2012),用于从具有有效地址(来自表详细信息)的表(客户)中获取客户的姓名:
Select Customer.Name, Details.Address
from Customer
left outer join Details on Details.Customer = Customer.Name
这用于每次从数据库服务器发回每个客户的每个记录(名称)行。不会提取多条记录。
最近我需要修改这个 sql 文本,以便根据数据库获取他们借阅的书籍的名称,该数据库保存在另一个表(Lending)中。现在脚本看起来像:
Select Customer.Name, Details.Address, Lending.BookName
from Customer
left outer join Details on Details.Customer = Customer.Name
left outer join Lending on Lending.CustomerName = Customer.Name
它正在正确返回记录,但现在我遇到了问题。由于一个客户可以借多本书,因此返回的数据有多行显示同一客户的多个书名。根据我的软件规范,我需要为每个客户获取一行,并且在那一行中,我需要将所有书名附加到一列中。 有人可以帮我解决这个问题:如何在单个列中为同一记录附加多个数据,例如:
Name Address BookName
Somdip XX Brief History of Time,Headfirst SQL,Headfirst C#
而不是
Name Address BookName
Somdip XX Brief History of Time
Somdip XX Headfirst SQL
Somdip XX Headfirst C#
??
【问题讨论】:
-
查看 GROUP_CONCAT 的“模拟”:stackoverflow.com/questions/17591490/…
标签: c# sql .net sql-server-2012