我正在从一个表中选择列,并希望在两个表具有匹配值时从相关表中选择列的所有值,用逗号分隔它们,并将它们与表1中的结果一起显示在一个列中。
我对这件事还不太熟悉,如果措辞不正确,我会提前道歉。

最佳答案

听起来,您要做的是获取多行,并通过将一列或多列中的字符串值连接起来,将它们聚合为一行。对?
如果是这样的话,我可以告诉你,如果你想用可移植的sql来实现它,这是一个比看起来更困难的问题,尤其是如果你不提前知道你可能会得到多少条。
在这种情况下,通常使用的特定于Oracle的解决方案是实现自定义聚合函数-STRAGG()。这里有一个link to an article确切地描述了如何这样做,并有它的使用示例。
如果您使用的是Oracle9i或更高版本,并且愿意使用未记录的函数(这在将来可能会发生变化),那么您还可以查看WM_CONCAT()函数,它做的事情与此基本相同。

07-26 08:46
查看更多