有谁知道Firebird 2.5是否有类似于SQL中“STUFF”函数的功能?
我有一个包含父用户记录的表,另一个包含与父级相关的子用户记录的表。我希望能够提取用户拥有的“ROLES”的逗号分隔字符串,而无需使用第二个查询,循环遍历给定 ID 返回的值并自己创建字符串。
我搜索过任何其他相关问题,但没有找到。
这个链接中的问题相当于连接 Sum 的字符串基本上也是我想做的,但是使用 Firebird 2.5 数据库。
看起来你很幸运 - Firebird 2.1 引入了LIST()聚合函数其工作原理如下GROUP_CONCAT
在 MySQL 中,它允许像这样的查询:
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;
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)