相关疑难解决方法(0)

oracle中有没有类似于mysql中的group_concat的函数?

我的投入是这样的.

col1   col2
1      a
1      b
2      c
2      d
2      e
Run Code Online (Sandbox Code Playgroud)

O/p:应该是这样的

col1    col2
1       a,b
2       c,d,e
Run Code Online (Sandbox Code Playgroud)

我想要一个可以在DB级别触发的查询.我尝试了各种各样的方法,但未能做到这一点......

sql oracle

48
推荐指数
1
解决办法
7万
查看次数

在Oracle中连接并分组多行

可能重复:
如何在Oracle中以A,B格式检索两列数据

假设我有一个这样的表:

NAME          GROUP_NAME
name1         groupA
name2         groupB
name5         groupC
name4         groupA
name3         groupC
Run Code Online (Sandbox Code Playgroud)

我想得到这样的结果:

GROUP_NAME     NAMES
groupA         name1,name4
groupB         name2
groupC         name3,name5
Run Code Online (Sandbox Code Playgroud)

如果表中只有一列,我可以通过执行以下操作来连接记录,但是在上下文中进行分组时,我真的没有太多想法.

连接一个列表:

SELECT names 
FROM (SELECT SYS_CONNECT_BY_PATH(names,' ') names, level
      FROM name_table

      START WITH names = (SELECT names FROM name_table WHERE rownum = 1)
      CONNECT BY PRIOR names < names
      ORDER BY level DESC)
      WHERE rownum = 1 
Run Code Online (Sandbox Code Playgroud)

更新:

我现在有一个解决方案LISTAGG:

SELECT
group_name,
LISTAGG(name, ', ')
WITHIN GROUP (ORDER BY GROUP) "names"
FROM name_table
GROUP …
Run Code Online (Sandbox Code Playgroud)

sql oracle grouping concatenation group-concat

30
推荐指数
1
解决办法
8万
查看次数

Oracle组只有一列

我在Oracle数据库中有一个表,它有40列.我知道如果我想查询进行分组,则select中的所有列必须在group by中.

我只是想做:

select col1, col2, col3, col4, col5 from table group by col3
Run Code Online (Sandbox Code Playgroud)

如果我尝试:

select col1, col2, col3, col4, col5 from table group by col1, col2, col3, col4, col5
Run Code Online (Sandbox Code Playgroud)

它没有提供所需的输出.

我搜索了这个,但没有找到任何解决方案.我使用某种Add()或count(*)函数找到的所有查询.

在Oracle中,不可能简单地按一列分组?

更新:

我道歉,因为不够清楚.

我的表:

+--------+----------+-------------+-------+
| id     | col1     | col2        | col3  |
+--------+----------+-------------+-------+
| 1      | 1        | some text 1 | 100   |
| 2      | 1        | some text 1 | 200   |
| 3      | 2        | some text …
Run Code Online (Sandbox Code Playgroud)

sql oracle group-by

2
推荐指数
1
解决办法
7834
查看次数

在Oracle SQL语句中构建以逗号分隔的值列表

我正在尝试从Oracle中的字段构建以逗号分隔的值列表.

我找到了一些示例代码:

DECLARE @List VARCHAR(5000)
SELECT @List = COALESCE(@List + ', ' + Display, Display)
FROM TestTable
Order By Display
Run Code Online (Sandbox Code Playgroud)

但是,当我尝试时,我总是得到关于FROM关键字的错误,而不是它是预期的.我可以使用SELECT INTO并且它可以工作,但如果我有多行,我会得到提取错误.

为什么我不能这样做:

SELECT myVar = Field1
FROM myTable
Run Code Online (Sandbox Code Playgroud)

oracle select-into

1
推荐指数
1
解决办法
2万
查看次数