我在sql server中的存储过程中有这个结果(多次左连接的结果):
http://sqlfiddle.com/#!18/be597/1
我需要在每封电子邮件中发送列文章的内容,代码。
我考虑过GROUP_CONCAT函数,但我不认为这是一个很好的解决方案,因为它会将查询中的文本格式化。
SELECT mail, GROUP_CONCAT(CONCAT('Article: ', article, ' - Code: ', code), '\n') FROM mail GROUP BY mail
我想将数据保存在存储过程中供以后使用。
如何在sql中执行此操作?
我认为这应该是SQL查询的反复出现的问题,但我是初学者,所以我允许自己提出这个问题。
答案 0 :(得分:1)
GROUP_CONCAT
是一个Mysql功能,SQL Server不支持这种功能。您可以使用FOR XML PATH
SELECT
mail,
STUFF((
SELECT ', ' + article
FROM mail
WHERE (mail = mainMail.mail)
FOR XML PATH (''))
,1,2,'') AS Articles,
STUFF((
SELECT ', ' + CAST(code AS VARCHAR(5))
FROM mail
WHERE (mail = mainMail.mail)
FOR XML PATH (''))
,1,2,'') AS Codes
FROM mail mainMail
GROUP BY mail
我想将数据保存在存储过程中供以后使用。
您不会将数据保留在存储过程中。您将查询保留在存储过程中并执行。