在Oracle中,如何从相关表中选择多个值并将它们存储在一个列中?

时间:2010-09-28 18:08:27

标签: sql database oracle

我正在从一个表中选择列,并希望在两个表具有匹配值时从相关表中选择列的所有值,用逗号分隔它们,并将它们显示在一个列中,其结果来自表一。

我对此很新,如果我没有正确写字,请提前道歉。

2 个答案:

答案 0 :(得分:1)

听起来你要做的就是通过连接一列或多列中的字符串值来获取多行并将它们聚合成一行。是吗?

如果是这种情况,我可以告诉你,如果你想使用便携式SQL做这个问题,这是一个更难的问题 - 特别是如果你不提前知道你可能得到多少项目。

在这种情况下经常使用的特定于Oracle的解决方案是实现自定义聚合函数 - STRAGG()。这是一个link to an article,它准确地描述了如何操作,并举例说明了它的用法。

如果您使用的是Oracle 9i或更高版本,并且愿意使用未记录的函数(将来可能会更改),您还可以查看WM_CONCAT()函数 - 它的功能大致相同。

答案 1 :(得分:1)

您需要行聚合或连接功能,选项包括: