(oracle数据库方面)谁能帮我解析下replace和substr,这串代码不太明白,谢谢了

2024年12月03日 04:32
有4个网友回答
网友(1):

select replace('2014-12','-','00')||'00' from dual;--效果图

select  substr('1234567890abcdefghijkl',1,10)  from dual;--效果图

如果不知道什么意思,就先查询出来,比对结果
substr(‘’,n,m)表示从n位开始截取M个长度,replace('s','n','m')表示把s中的n替换成m

网友(2):

substr是截取字符串,substr(t.tm_priod,1,10)意思是截取字段中从第一位到第十位的字符串,replace是替换,replace('2014-12','-','00')意思是把-替换成00,结果为20140012,||是链接字符串的意思,(replace('2014-12','-','00')||'00') 的结果为 2014001200

网友(3):

substr(t.tm_priod,1,10) : t.tm_priod 列值从第1位开始截取,截取10位
replace('2014-12','-','00')||'00' : 把其中’2014-12 ‘的 ’- ‘符号替换为 ’00 ‘然后再并上‘00 ’结果为2014001200

网友(4):

(replace('2014-12','-','00')||'00') = ‘2014001200’ 就是用'00'替换前面字符串中的'-',后面|| 就表示连接字符串。
substr 是截取字符串用的,意思是从字符串第一位开始截取10位字符。
如果不理解可以用下面的sql
select substr('abcdef',1,10),(replace('2014-12','-','00')||'00') from dual;
自己多试试就清楚了。