代码之家  ›  专栏  ›  技术社区  ›  hsatterwhite

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

  •  2
  • hsatterwhite  · 技术社区  · 14 年前

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

    我对这件事相当陌生,如果措辞不正确,我会提前道歉。

    2 回复  |  直到 14 年前
        1
  •  1
  •   LBushkin    14 年前

    听起来您要做的是通过将一列或多列中的字符串值串联起来,获取多行并将它们聚合到一行中。 对?

    如果是这样的话,我可以告诉你,如果你想用可移植SQL来做这件事的话,这是一个比看起来更困难的问题——特别是如果你不知道你可以提前得到多少项的话。

    在这种情况下,经常使用的Oracle特定解决方案是实现 - STRAGG() . 这里有一个 link to an article 它准确地描述了如何做到这一点,并提供了它的用法示例。

    如果您使用的是oracle9i或更高版本,并且愿意使用未记录的函数(将来可能会发生变化),那么您还可以查看 WM_CONCAT() 函数-它做了很多相同的事情。

        2
  •  1
  •   vls    14 年前