SQL 怎么取某字段三级以后的值。 例如:123456789 需要取得456789 求大神解决,3Q

求具体语句,拜托,万分感谢

如果是字符型的,那么直接trunc就可以。
如果是数字型,变成字符型,然后从第四位开始截取不就可以了。追问

求具体语句,谢谢了

追答

日,刚才没注意,才看见写错函数了。
应该是substr
select substr(字段串,4) from table
如果是数字,那么就
select substr(to_char(字段串),4) from table
如果不是oracle数据库,我就不那么清楚了,不过substr应该是各个数据库都有的。

追问

是oracle数据库

实际情况是01_02_03_04_05_06_07
需要取03_04_05_06_07
我只会从第一个_开始取(也就是02开始往后),从03开始就不清楚怎么去取了,请指教,3Q

追答

我大概知道是什么意思了,也就是说,你要找的是第二个_,然后从它的后面开始取,是这个意思吧。
基本上就是

select substr(字段,instr( 字段,'_',1,2)+1) from table
大概应该和这个差不多
instr( 字段,'_',1,2)是找在字段中第二个_的位置,然后再进行截取,大概就是这样的。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2016-10-25
sql中加入substring函数追问

是oracle数据库

实际情况是01_02_03_04_05_06_07
需要取03_04_05_06_07
我只会从第一个_开始取(也就是02开始往后),从03开始就不清楚怎么去取了,请指教,3Q

相似回答