oracle 字符串拼接

关于oracle需求:表A中有字段a(运单号),b(出发地),c(目的地),d(航段编号)一张表中运单号最多重复4个,换句话说最多有4行的运单号是一样的,比如运单号为999的有4条记录,分别对应着航段编号1,2,3,4 。第一条:出发地x,目的地y。第二条:出发地y,目的地z。第三条:出发地z,目的地m。第四条:出发地m,目的地l。所以,我想汇总他们的时候得出一个字段叫“航程”,值为x-y-z-m-l。怎么写sql语句。
最新回答
星河万里

2024-04-12 03:50:29

1、创建新的测试数据表,或者可以选择要测试的现有表数据。这只是测试字符串连接,不会影响数据内容。从T_BASE_PROVINCE t中选择*,其中t.id = 1。

2、首先介绍下一个||满足连接,||可以一次连接多个字符串,选择t.PROVINCEID ||来自T_BASE_PROVINCE的t.PROVINCE t其中t.id = 1。

3、由||连接除了字段和字段之间的字符串连接之外,还可以将方法连接到常量字符串选择'省:'||来自T_BASE_PROVINCE的t.PROVINCE t其中t.id = 1。

4、您还可以使用CONCAT函数连接到字符串,传入函数字符串1和字符串2,两个参数。参数的方式也支持常量字符串从T_BASE_PROVINCE t中选择CONCAT(t.PROVINCEID,t.PROVINCE),其中t.id = 1。

5、如果要连接的字符串有两个以上的参数,如下例所示,则有4个字符串连接。运行后,测试发现异常,参数无效。从T_BASE_PROVINCE t中选择CONCAT('省ID:',t.PROVINCEID,'省:',t.PROVINCE),其中t.id = 1; -  ERROR ORA-00909:参数数量无效。

6、对于上述问题,如果连接参数大于2,则可以选择CONCAT嵌套方法。从T_BASE_PROVINCE t中选择CONCAT(CONCAT('省ID:',t.PROVINCEID),'省:'),t.PROVINCE),其中t.id = 1。

▏末夕晴ヽmiss

2024-04-12 12:30:49

1、创建新的测试数据表,或者可以选择要测试的现有表数据。这只是测试

字符串
连接,不会影响数据内容。从T_BASE_PROVINCE t中选择*,其中t.id = 1。

2、首先介绍下一个||满足连接,||可以一次连接多个字符串,选择t.PROVINCEID ||来自T_BASE_PROVINCE的t.PROVINCE t其中t.id = 1。

3、由||连接除了字段和字段之间的字符串连接之外,还可以将方法连接到

常量
字符串选择'省:'||来自T_BASE_PROVINCE的t.PROVINCE t其中t.id = 1。

4、您还可以使用CONCAT函数连接到字符串,传入函数字符串1和字符串2,两个参数。参数的方式也支持常量字符串从T_BASE_PROVINCE t中选择CONCAT(t.PROVINCEID,t.PROVINCE),其中t.id = 1。

5、如果要连接的字符串有两个以上的参数,如下例所示,则有4个字符串连接。运行后,测试发现异常,参数无效。从T_BASE_PROVINCE t中选择CONCAT('省ID:',t.PROVINCEID,'省:',t.PROVINCE),其中t.id = 1; -  ERROR ORA-00909:参数数量无效。

6、对于上述问题,如果连接参数大于2,则可以选择CONCAT嵌套方法。从T_BASE_PROVINCE t中选择CONCAT(CONCAT('省ID:',t.PROVINCEID),'省:'),t.PROVINCE),其中t.id = 1。

软耳兔兔

2024-04-12 13:04:32

select t1.b || '-' || t2.b
from (select a, b from A where d = 1) t1,
(select a, replace(wm_concat(c), ',', '-') b
from A
start with d = 1
connect by b = prior c
group by a) t2
where t1.a = t2.a
陌玍旳对白

2024-04-12 10:17:26

select t1.b || t2.b
from t1 ,
(select a,sys_connect_by_path(c,'-') b
FROM T1
WHERE C='l'
START WITH b='x'
CONNECT BY PRIOR C = B) t2

where t1.a = t2.a and t1.b='x';
你依旧那么甜

2024-04-12 09:23:25

select t1.b || '-' || t2.b
from (select b from a where d = 1) t1,
(select replace(wm_concat(c), ',', '-') b
from a
start with d = 1
connect by b = prior c) t2