【发布时间】:2019-09-05 16:29:17
【问题描述】:
我一直在试图弄清楚是否有一种方法可以在 SQL 语句中使用循环。
Select j.JobID, s.OrderNumber,
(SELECT OperationID From Operations) as Operations <--- This will cause multiple results
From Jobs j
Inner Join Sales s on j.JobID = s.SalesJobID
Where j.JobID = '123456-1-1'
这就是我们所拥有的
JobID OrderNumber Operation
----- ----------- ----------
1123456-1-1 TEST1 DEV
1123456-1-1 TEST1 APR
1123456-1-1 TEST1 CAT
1123456-1-1 TEST1 LFT
1123456-1-1 TEST1 PKG
尝试做这样的事情。
JobID OrderNumber Operations
----- ----------- ----------
1123456-1-1 TEST1 DEV, APR, CAT, LFT, PKG
【问题讨论】:
-
为什么循环??? SQL 是一种基于集合的语言。你不循环。如果您使用的是 SQL Server,请尝试查找
STRING_AGG()。否则,请使用适当的标签正确标记您的问题。 -
网络上也有大量关于此的示例。你有没有做过任何研究???
-
@Eric 是的,我有。
-
有很多方法可以做到这一点,其中一些取决于您使用的数据库引擎(您没有指定)。您可以使用 CTE、CURSOR、FOR XML PATH。请参阅本文了解实现目标的可能方法。 red-gate.com/simple-talk/sql/t-sql-programming/…
-
@mrmcg 如果你有,你就不需要问这个问题了。网络上有足够多的例子。我什至没有看到您尝试获取所需的查询。
标签: sql sql-server sql-server-2014 string-aggregation