有没有一种方法可以使用两个表将多个行行连接为单个行,而在ORACLE中这些表的值由逗号分隔?
例子:
IdN Name
---------
1 A
2 B
3 C
IdC Car
------------
1 Ferrari
1 BMW
2 SEAT
2 FIAT
3 FORD
结果为:
A Ferrari,BMW
B SEAT,FIAT
C FORD
我想知道是否有这样的事情:
SELECT NAME,CAR
FROM TABLE1, TABLE2
where TABLE1.IdN=TABLE2.IdC
这将返回类似:
A FERRARI
A BMW
B SEAT
B FIAT
C FORD
有没有一种简单的方法可以用逗号分隔值将其“连接”成一行?
看看LISTAGG
http://www.oracle-
base.com/articles/misc/StringAggregationTechniques.php
就像是:
SELECT NAME, LISTAGG(CAR, ',') WITHIN GROUP (ORDER BY CAR) AS CARS
FROM (SELECT NAME,CAR
FROM TABLE1, TABLE2
where TABLE1.IdN=TABLE2.IdC)
GROUP BY NAME;
问题内容: 我试图通过首先从成功完成的列“ SupplierId”中转换逗号分隔的值来尝试连接两个表。但是,当我尝试通过外键“ DCLink”连接到另一个带有“供应商”名称的表“供应商”时,就会出现问题。 这就是我的意思: 原始表的选择语句, 得到这个结果 我可以使用此sql语句从SupplierId拆分列 并得到这些结果 但是,当我应用这段代码将InquiryDetails表连接到供应商名称上的
问题内容: 客户要求将Oracle DB SQL中的1行拆分为6行。 假设,最初的SQL(具有多个联接的复杂sql等)进入9列: 从X,Y,Z中选择A,B,C,D,E,F,G,H,I。。。(但查询非常复杂) 1)A,B,C,D,E,F,G,H,I 现在,客户要求返回返回到上述模式的每一行,新的输出应如下所示: 1)A,B,C,’D’,D 2)A,B,C,’E’,E 3)A, B,C,’F’,F 4
问题内容: 我正在尝试在我的SQL Server数据库中合并这样的内容: 变成这个: 我需要在SQL Server和Oracle中都这样做。 我发现MySQL的功能完全可以满足我的需要,但是MySQL并不是这里的选择。 编辑: 测试台: 问题答案: 这是在SQL Server 2005+中可以使用的解决方案: 参考: STUFF(Transact-SQL)
问题内容: 我有2张桌子如下 笔记表 职位表 我想查询我的Notes表并将’forDepts’列与Positions表中的值相关联。 输出应为: 我知道数据库应该规范化,但是我不能更改此项目的数据库结构。 这将用于使用以下代码导出excel文件。 此代码仅输出“ forDepts”的第一个值 考试:执行人员(而不是执行人员,公司行政人员,Art) 可以通过CONCAT或FIND_IN_SET完成吗
问题内容: 我有一个简单的查询: 结果如下: 我想在一行中返回结果,所以像这样: 当然,我可以编写一个PL / SQL函数来完成这项工作(我已经在Oracle10g中做到了),但是对于此任务是否有更好的,最好是非Oracle特定的解决方案(或者可能是内置函数) ? 我通常会用它来避免子查询中出现多行,因此,如果一个人有一个以上的公民身份,我不希望他/他在列表中重复。 更新 :我的函数看起来像这样:
我尝试用以下方法调用三个引用游标参数: 但是listOfObjects只包含cursor1的内容,无法获得cursor2的内容。