oracle 字符串拼接
和其他数据库系统类似,Oracle字符串连接使用“||”进行字符串拼接,其使用方式和MSSQLServer中的加号“+”一样。
比如执行下面的SQL语句:
SELECT '工号为'||FNumber||'的员工姓名为'||FName FROM T_Employee
WHERE FName IS NOT NULL
除了“||”,Oracle还支持使用CONCAT()函数进行字符串拼接,比如执行下面的SQL语句:
SELECT CONCAT('工号:',FNumber) FROM T_Employee
如果CONCAT中连接的值不是字符串,Oracle会尝试将其转换为字符串,比如执行下面的SQL语句:
SELECT CONCAT('年龄:',FAge) FROM T_Employee
与MYSQL的CONCAT()函数不同,Oracle的CONCAT()函数只支持两个参数,不支持两个以上字符串的拼接,比如下面的SQL语句在Oracle中是错误的:
SELECT CONCAT('工号为',FNumber,'的员工姓名为',FName) FROM T_Employee
WHERE FName IS NOT NULL
运行以后Oracle会报出下面的错误信息:
参数个数无效
如果要进行多个字符串的拼接的话,可以使用多个CONCAT()函数嵌套使用,上面的SQL可以如下改写:
代码如下:
SELECT CONCAT(CONCAT(CONCAT('工号为',FNumber),'的员工姓名为'),FName) FROM
T_Employee
WHERE FName IS NOT NULL
Oracle的字符串连接用 ||
select substr(t.name0,4) || '00' from table t
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。
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。
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
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';
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
巫荀地巴: select '第一个字符串' || '第二个字符串' || '第三个字符串' || '第四个字符串' || '第五个字符串' from dual; 这样写试一下,看看是否好用.
让胡路区19458998964: 怎样在Oracle中拼接字符串 - ?
巫荀地巴: 可以使用||进行拼接,例如: select 'abc'||'123' from dual 输出:abc123
让胡路区19458998964: oracle 怎么进行字符拼接 - ?
巫荀地巴: oracle 字符拼接用: || 例如: select col1 || col2 as xxxx from dual
让胡路区19458998964: Oracle怎么把多个字段的字段合成一个字符串 - ?
巫荀地巴: select FLH || '/0' || ZCH || '0' || FCH from ……
让胡路区19458998964: oracle 怎么将多行拼接字符串 - ?
巫荀地巴: select t1.b || '-' || t2.bfrom (select a, b from a where d = 1) t1,(select a, replace(wm_concat(c), ',', '-') bfrom astart with d = 1connect by b = prior cgroup by a) t2where t1.a = t2.a
让胡路区19458998964: oracle中字符串怎么相加 - ?
巫荀地巴: || 用两个竖线,连接字符串.
让胡路区19458998964: 怎样Oracle把多条记录的相同字段拼成一个字符串 - ?
巫荀地巴: select 别名 from( select row_number()over(order by lv desc) id,name from ( select level lv,replace(sys_connect_by_path(字段,','),',','') 别名from ( select name,row_number()over(order by 字段) id from 查询结果 ) connect by prior id = id-1 ))...
让胡路区19458998964: ORACLE是否有把2个字符串连接在一起的函数 - ?
巫荀地巴: 有以下两种方式1、用concat函数连接字符串;2、使用“||”进行字符串拼接.
让胡路区19458998964: oracle 将表中所有字段拼接成一个字符串给另一个表的一个字段?
巫荀地巴: 拼接字段 select 字段1||字段2||字段3... from a; update b set X字段=(select 字段1||字段2||字段3... from a);
让胡路区19458998964: oracle 数据存储 字符串拼接 - ?
巫荀地巴: declare num number; beginselect TO_NUMBER(substr('d+1',2)) into num from dual;dbms_output.put_line(num);--dbms_output.put_line('明天'||replace(to_char(add_months(to_date(sysdate,'yyyymmdd'),0)+ num ),'-','')); end;声明一个变量,赋值再转换下就可以了