问题标签 [listagg]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
oracle - 如何获取listagg中每个字符串的''?
我有以下查询:
我想要这部分:
AND ix.UDBENCH_UDIDX IN (select listagg(udfo,',') within group(ORDER BY udfo) from XXXXX where pf_ticker is null )
相当于: ix.UDBENCH_UDIDX IN ('blal','bll',blc') 但它显示 ix.UDBENCH_UDIDX IN (blal,bll,blc) 并且我的查询结果是一个空表,你知道如何设置listagg 有这个结果('blal','bll',blc' 而不是 blal,bll,blc)?谢谢
sql-server - Oracle 到 MS SQL Server 查询更改
我有一个带有 Oracle 投诉语法的 SQL 查询。它必须根据 MS SQL Server 语法进行更改。我不确定 LISTAGG 会如何变化。任何帮助深表感谢。下面是查询
提前致谢。
sql - 使用 LISTAGG 和 CASE 语句的 SQL 查询
任何人都可以在这里帮助我解决以下问题,
我想同时CASE
使用LISTAGG
。
使用我正在做的 sql
所以输出只能正常工作
所以在这里我想写一个案例或者 if else 逻辑(如果 50|100|128)它应该反映为是 else if 100|100|128 那么它应该反映为否
你能帮我解决这个问题吗?
sql - LISTAGG 操作期间带有 LIKE 的 CASE 语句
请参考上表使用操作 LISTAGG 背后的原因,我得到多行 Person ID 因为我每个人都与多个 Group ID 相关联,所以我想使用 LISTAGG 连接 Group ID 并隔离值。
而且由于 IGROUP 值有很多,每个人都可以关联一个值,但是我们担心前 2 个值,在屏幕截图中
当某事返回 100|50 Then 'GroupA' 当某事返回 150|100 Then 'GroupB' 当某事返回 200|150 然后 'GroupC'
但这里的问题是,如果我使用上述方式,我必须在 CASE 语句中定义所有组合
有什么办法可以使用WHEN LIKE '100|50%'
THEN GroupA
sql - 在 where 子句中使用 listagg 生成的列
我在 oracle 数据库中有 3 个表。它们看起来像这样:
该表Right
有两个foreign_keys:username
指向表中同名的列user
和organisationname
指向表Organisation
。
对于user
在 x 上拥有正确用户的所有用户organisation
,我想获取organisations
用户拥有 1 个或多个权限的所有(组织 x 除外)的列表。
在我的示例中:a 在 x 上有正确的用户,b 在 x 上有正确的用户,c 在 x 上没有正确的用户。所以我只想为用户 a 和 b (而不是 c !!!)获取所有组织(不同的!,没有组织名称两次)。如果一个用户在 x 之外没有其他组织的权限(他必须拥有正确的用户),我希望该用户在输出中但没有组织。
预期的输出是:
我希望你明白我的意思。到目前为止,我的查询如下:
该查询有效,但现在我想过滤列组织。但我无法在 where 子句中使用它。当我尝试使用它时,oracle 会抛出错误:ORA-00904: invalid identifier
有谁知道我怎么能做到这一点?我认为oracle有问题是因为listagg的解析函数。我也会很高兴关于如何简化我的查询的建议。谢谢!
这是我尝试在 where 子句中使用列组织的内容:
sql - 在 Oracle 中限制 LISTAGG 结果
我试图限制我的 SQL 查询中的一个列,该查询使用 LISTAGG 仅将前 3 行分组到一个列中。
例如:
让它返回以下...
我可以使用 listagg 连接数据,但是我不完全确定如何将结果限制为前 3 条记录。
LISTAGG 可以做到这一点吗?任何帮助将不胜感激。谢谢
sql - 将 Sum 添加到 Select 中 Listagg 的每一行
我将以下内容用作按预期工作的更大查询的一部分。
在我的情况下,一些托运人 ID 可以有多个项目编号,然后所有这些编号都将通过以下汇总。
示例:
发货人 ID 有 3 个项目编号。
在这种情况下,以下将返回 3 件商品(包括它们的详细信息)和此发货人 ID 的 3 个总价。
有什么方法可以总结每个运输 ID 的总价格吗?
假设上述示例中的总价格为 10.00、20.00 和 30.00,那么我希望看到此发件人 ID 为 60.00 的总价。
如果这更容易,这可以显示在单独的列中。
我尝试了多种方法,但无法使其正常工作。
我的查询:
sql - 影响查询性能的 regxp_replace 和 listagg
我想提高查询的性能。由于使用了 listagg 和 regxp_like,查询性能可能会下降。有没有其他更好的选择来代替这两个功能,这可能会提高性能。
- 我不允许向我正在使用的表引入任何索引。(为所有表添加了更多索引......不能再添加了)
- 需要围绕查询方法进行调整以提高其性能
查询:版本 2(性能 64.796)
查询:版本 1(性能 10.327)
</p>