oracle中的字段拼接是通过“||”来完成的。
例如:
NO Q
---------- ------------------------------
001 n1
001 n2
001 n3
001 n4
001 n5
002 m1
003 t1
拼接后:
NO Q
---------- ------------------------------
001 n1,n2,n3,n4,n5
002 m1
003 t1
拼接字段 select 字段1||字段2||字段3... from a;
update a set X字段=(select 字段1||字段2||字段3... );
substr截取字符串
‘abcde’---要截取的字符串
-3 ---从右向左第3个字符向后开始截取
3 --- 取三个字符
substr(‘abcde’,-3,3) 返回的结果是 cde
给你几个例子:
substr("ABCDEFG", 0); //返回:ABCDEFG,截取所有字符
substr("ABCDEFG", 2); //返回:CDEFG,截取从C开始之后所有字符
substr("ABCDEFG", 0, 3); //返回:ABC,截取从A开始3个字符
substr("ABCDEFG", 0, 100); //返回:ABCDEFG,100虽然超出预处理的字符串最长度,但不会影响返回结果,系统按预处理字符串最大数量返回。
substr("ABCDEFG", 0, -3); //返回:EFG,注意参数-3,为负值时表示从尾部开始算起,字符串排列位置不变。