Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/oracle/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 如何在oracle中合并特定单元格表数据_Sql_Oracle_Concatenation - Fatal编程技术网

Sql 如何在oracle中合并特定单元格表数据

Sql 如何在oracle中合并特定单元格表数据,sql,oracle,concatenation,Sql,Oracle,Concatenation,我想根据sequence SEQ number属性有条件地连接oracle表中的文本单元格。有可能吗?我需要你的帮助 例如,我有以下表格数据: |-----------------| |ID|CODE|SEQ|TEXT | |--|----|---|-----| |1 |a |1 |text1| |1 |a |2 |text2| |2 |b |1 |text3| |3 |c |1 |text4| |4 |d |1 |text6| |4 |d |2 |text7

我想根据sequence SEQ number属性有条件地连接oracle表中的文本单元格。有可能吗?我需要你的帮助

例如,我有以下表格数据:

|-----------------|
|ID|CODE|SEQ|TEXT |
|--|----|---|-----|
|1 |a   |1  |text1|
|1 |a   |2  |text2|
|2 |b   |1  |text3|
|3 |c   |1  |text4|
|4 |d   |1  |text6|
|4 |d   |2  |text7|
|4 |d   |3  |text8|
-------------------
我想做的是创建一个新的表DATA1,在SEQ>1的情况下,它将具有相同id和代码的文本值与连接的文本连接起来。新表应如下所示:

|-------------------------|
|ID|CODE|TEXT             |
|--|----|-----------------|
|1 |a   |text1 text2      |
|2 |b   |text3            |
|3 |c   |text4            |
|4 |d   |text6 text7 text8|
---------------------------
函数可能与按id和代码分组一起使用

select id, code, 
       listagg(text,' ') within group (order by seq) as text
  from tab
 group by id, code 

嗨,巴拉巴罗斯。我想对一个大表应用查询。有没有一种方法可以实现for循环?如果sqlHi@Konstantinos中的循环很困难,我们也可以使用php。大多数情况下,这种方法比使用PL/SQL和循环更可取,我认为循环包括冗长的脚本。而且使用游标并不能为大量填充的表提供性能提升。@Konstantinos-你完全错了。游标、循环、通过PHP从外部控制进程会导致性能损失,有时甚至非常严重。正如Barbaros所展示的那样,在DB中做任何事情都是首选的方式。如果花费的时间太长,您可以肯定,使用您提到的方法将花费更长的时间。但是问问你自己——为什么你一开始就想做你要求的事情?您正在创建的新表违反了表设计的最基本原则。@mathguy。。。我需要按照顺序连接第一个表中的文本。你有什么建议?@Konstantinos-由Barbaros提出的解决方案。另外,我需要连接。。。没有回答我问的更高层次的问题。为什么需要连接?或者,一个更好的问题——也许出于某种报告目的,您必须将其串联起来;但为什么需要将连接的值存储在磁盘上的单独表中?当对原始表进行更改时,如何保持两个表的同步?也许您应该根据Barbaros提出的代码创建一个视图,而不是一个新表。