- Tìm số 0 đầu tiên trong một mảng bit
- Unix Hiển thị thông tin về các tập tin khớp với một trong hai mẫu
- Biểu thức chính quy thay thế nhiều tệp
- Ẩn lệnh từ xtrace
有谁知道Firebird 2.5有没有类似于SQL中“STUFF”函数的功能?
我有一个包含父用户记录的表,另一个表包含与父相关的子用户记录。我希望能够提取用户拥有的“ROLES”的逗号分隔字符串,而无需使用第二个查询,遍历为给定 ID 返回的值并自己创建字符串。
我已经搜索过任何其他相关问题,但没有找到。这个链接的问题string equivalent of Sum to concatenate基本上也是我想做的,但是使用 Firebird 2.5 数据库。
1 Câu trả lời
看起来您很幸运 - Firebird 2.1 引入了一个 LIST()
aggregate function它的工作方式类似于 MySQL 中的 GROUP_CONCAT
,它允许这样的查询:
SELECT p.Name, LIST(c.Name, ', ')
FROM parent p INNER JOIN child c on c.parentid = p.parentid
GROUP by p.Name;
编辑,重新排序
在应用 LIST
聚合函数之前,您可以通过对派生表中的数据进行预排序来影响排序,如下所示:
SELECT x.ParentName, LIST(x.ChildName, ', ')
FROM
(
SELECT p.Name as ParentName, c.Name as ChildName
FROM parent p INNER JOIN child c on c.parentid = p.parentid
ORDER BY c.Name DESC
) x
GROUP by x.ParentName;
关于sql - 与 SQL 中的 STUFF 等效的函数(MySQL 中的 GROUP_CONCAT/Oracle 中的 LISTAGG),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26635451/
这是我第一次使用 LISTAGG 函数,我很困惑。我可以很容易地选择数据,但是 USERS 列的字符之间都有空格,并且在尝试复制粘贴时,没有复制该列中的数据。我试过两种不同的 IDE。我做错了什么吗?
SELECT e.pem_id AS id, e.pem_subject AS subject, e.pem_content AS content
我正在我的脚本中使用 listagg listagg(' |' || aktiv.AKTIVITÄT_NR || ' |' || aktiv.AKTIVITÄT_KÜRZEL || ' |' ||
我正在尝试使用 LISTAGG() 来获取超过两列。 SELECT deptname, deptno, LISTAGG(ename, ',') WITHIN GROUP (ORDER BY ename
哪个更有效,特别是在将 Listagg 与 varchar 类型数据一起使用的情况下? SELECT department_id AS "Dept.", LISTAGG(last_nam
我正在尝试在 Redshift 中检索表的 DDL。我找到了 this View ,我可以在其中轻松选择任何表的定义。但是,我需要在一行中提供此信息,并且我知道有这个 Listagg 函数,但是如果我
我有一张这样的 table (报告) -------------------------------------------------- | user_id | Department | Pos
这是我正在尝试做的事情和我得到的结果的一个最小的工作示例: 我有一个查询如下: /* with tran_party as -- ALL DUMMY DATA ARE IN THESE CTE FOR
我正在研究 Oracle SQL-Developer。 让我们从数据开始,以更好地描述我的问题。我有一个有 2 列的表格 USER JOB 这 2 者之间的关系是 1,n。因此,1 个用户可以与 1
我正在尝试聚合一列: SELECT LISTAGG(name, '; ') WITHIN GROUP (ORDER BY name) FROM tbl_a INNER JOIN tbl_b ON t
我在 oracle 中有一个这样的查询,但我想要一个与此等效的配置单元 SQL。有人可以指导我下面的等效配置单元是什么 '[' || LISTAGG(t3.measure_title, ';') 在组
在 GORM(使用 grails)中,我需要将子选择中的多个结果合并为一个值。 (此子选择的结果将是连接值,我可以在其上进行搜索/排序等......) 查询写为 HQL。 oracle中有这样的东西
美好的一天。我正在编写一个使用 LISTAGG 并返回结果的查询。这是我到目前为止的代码。 select listagg(rtrim(shop_cde, 1), ', ') within
我正在研究 Oracle SQL-Developer。 让我们从数据开始,以更好地描述我的问题。我有一个有 2 列的表格 USER JOB 这 2 者之间的关系是 1,n。因此,1 个用户可以与 1
我正在尝试聚合一列: SELECT LISTAGG(name, '; ') WITHIN GROUP (ORDER BY name) FROM tbl_a INNER JOIN tbl_b ON t
我在 oracle 中有一个这样的查询,但我想要一个与此等效的配置单元 SQL。有人可以指导我下面的等效配置单元是什么 '[' || LISTAGG(t3.measure_title, ';') 在组
所有结果的 good_name 列均为空。查询中存在什么问题? select fp.id, listagg(fpg.name, ',') within group(order by fpg.na
这个问题已经有答案了: LISTAGG function: "result of string concatenation is too long" (14 个回答) 已关闭 9 年前。 我正在使用
我正在尝试聚合 SQLServer 中的“STRING”字段。我想找到与 Oracle 中相同的函数 LISTAGG 。 您知道如何执行相同的功能或其他方法吗? 例如, Field A | Field
假设我有以下两个表表 1 - 用户 ID UserName 001 abc 002 bcd 003 def 表 2 - 值 ID Tag Price 001 start 1 001 middle 2
Tôi là một lập trình viên xuất sắc, rất giỏi!