如何在Oracle查询中对listagg使用条件

用户名

我有3个表:table_A,table_B和table_C。Table_A具有主键,并由table_B中的外键引用。Table_C具有一个主键,该主键由来自table_B的外键引用。设计是这样的:

T̲a̲b̲l̲e̲_̲A̲
ID_A
TextData

T̲a̲b̲l̲e̲_̲B̲:
ID_B
ID_A
ID_C

T̲a̲b̲l̲e̲ ̲C̲:
ID_C
TextData

查询:

select a.id_a,
       a.textdata,
       listagg(c.textdata, ', ') within group (order by c.id_c) data_c
from   table_a a
       inner join table_b b on (a.id_a = b.id_a)
       inner join table_c c on (b.id_c = c.id_c)
where c.textdata like :data
group by a.id_a, a.textdata;

我只是从c.textdata的一个表中获取数据,而不是从listagg获取数据。如果我尝试使用此查询:

select a.id_a,
       a.textdata,
       listagg(c.textdata, ', ') within group (order by c.id_c) data_c
from   table_a a
       inner join table_b b on (a.id_a = b.id_a)
       inner join table_c c on (b.id_c = c.id_c)
where listagg(c.textdata, ', ') like :data
group by a.id_a, a.textdata;

我收到类似以下错误:此处不允许使用组功能

因为我需要来自listagg的数据,如何对listagg参数赋予条件?

阿列克谢

您可以尝试包装查询:

select *
from (
      select a.id_a,
             a.textdata,
             listagg(c.textdata, ', ') within group (order by c.id_c) data_c
      from   table_a a
             inner join table_b b on (a.id_a = b.id_a)
             inner join table_c c on (b.id_c = c.id_c)
      group by a.id_a, a.textdata
     )
where data_c like :data

或使用HAVING在LISTAGG建立的字段上应用条件:

select a.id_a,
       a.textdata,
       listagg(c.textdata, ', ') within group (order by c.id_c) data_c
from   table_a a
       inner join table_b b on (a.id_a = b.id_a)
       inner join table_c c on (b.id_c = c.id_c)
group by a.id_a, a.textdata
having listagg(c.textdata, ', ') within group (order by c.id_c) like :data

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在 sql (oracle) 中使用带有 UDT 的 LISTAGG?

来自分类Dev

如何在查询中使用别名以在mysql中创建条件

来自分类Dev

如何在 Laravel 5.2 中为这个查询使用条件

来自分类Dev

如何在 Oracle 中的 DECODE 中使用子查询

来自分类Dev

如何在内部查询中使用逗号分隔值与listagg?

来自分类Dev

如何在查询中添加日期条件?

来自分类Dev

如何在搜索查询中编写条件?

来自分类Dev

如何在查询中添加日期条件?

来自分类Dev

如何在Oracle中使用sql server作为listagg在列表中选择输出结果

来自分类Dev

如何在MongoDB中使用条件查询

来自分类Dev

如何在查询中使用 if 条件?

来自分类Dev

如何在 find() 查询中使用 if 条件?

来自分类Dev

如何在Oracle中查询嵌套XML?

来自分类Dev

如何在oracle中处理以下查询

来自分类Dev

如何在Oracle中使用PL / SQL或SQL查询将新行插入查询结果中?

来自分类Dev

使用IF条件时,如何在django中的单个查询中更新数据库?

来自分类Dev

Oracle:如何使用启用/禁用WHERE条件编写查询

来自分类Dev

在Oracle中的一个查询中使用多个条件

来自分类Dev

如何在Mongodb中的查询评估条件表达式中使用字段?

来自分类Dev

如何在Mongodb中的查询评估条件表达式中使用字段?

来自分类Dev

如何在MongoDB中使用多个条件查询数组中的对象?

来自分类Dev

如何在 UNION 查询中的两个表中使用 where 条件?

来自分类Dev

如何在Oracle中查找查询使用的执行计划哈希值?

来自分类Dev

如何在Flutter中的Firebase查询中传递多个条件

来自分类Dev

如何在mysql查询laravel中的where条件中插入?

来自分类Dev

使用LISTAGG时在Oracle中“不是单组组函数”

来自分类Dev

当我在基于条件的查询中使用if else条件时,如何在PHP CODEIGNITER中的视图上获取该值

来自分类Dev

GeoFire:如何在查询中添加额外条件?

来自分类Dev

如何在猫鼬中建立条件查询?

Related 相关文章

  1. 1

    如何在 sql (oracle) 中使用带有 UDT 的 LISTAGG?

  2. 2

    如何在查询中使用别名以在mysql中创建条件

  3. 3

    如何在 Laravel 5.2 中为这个查询使用条件

  4. 4

    如何在 Oracle 中的 DECODE 中使用子查询

  5. 5

    如何在内部查询中使用逗号分隔值与listagg?

  6. 6

    如何在查询中添加日期条件?

  7. 7

    如何在搜索查询中编写条件?

  8. 8

    如何在查询中添加日期条件?

  9. 9

    如何在Oracle中使用sql server作为listagg在列表中选择输出结果

  10. 10

    如何在MongoDB中使用条件查询

  11. 11

    如何在查询中使用 if 条件?

  12. 12

    如何在 find() 查询中使用 if 条件?

  13. 13

    如何在Oracle中查询嵌套XML?

  14. 14

    如何在oracle中处理以下查询

  15. 15

    如何在Oracle中使用PL / SQL或SQL查询将新行插入查询结果中?

  16. 16

    使用IF条件时,如何在django中的单个查询中更新数据库?

  17. 17

    Oracle:如何使用启用/禁用WHERE条件编写查询

  18. 18

    在Oracle中的一个查询中使用多个条件

  19. 19

    如何在Mongodb中的查询评估条件表达式中使用字段?

  20. 20

    如何在Mongodb中的查询评估条件表达式中使用字段?

  21. 21

    如何在MongoDB中使用多个条件查询数组中的对象?

  22. 22

    如何在 UNION 查询中的两个表中使用 where 条件?

  23. 23

    如何在Oracle中查找查询使用的执行计划哈希值?

  24. 24

    如何在Flutter中的Firebase查询中传递多个条件

  25. 25

    如何在mysql查询laravel中的where条件中插入?

  26. 26

    使用LISTAGG时在Oracle中“不是单组组函数”

  27. 27

    当我在基于条件的查询中使用if else条件时,如何在PHP CODEIGNITER中的视图上获取该值

  28. 28

    GeoFire:如何在查询中添加额外条件?

  29. 29

    如何在猫鼬中建立条件查询?

热门标签

归档