oracle 数据库表有一列数据的值是001002003这种类型的,每三位数字代表的是一个单位或部门,前后是上下级的关系,
但是不一定多么长有的是001002有的是001002003004等,我想取除最后3位的值怎么取来着,比如:如果是001002003,我想取的值是001002,就用一条语句。因为数据比较多一条一条手动改太慢了。
但是不一定多么长有的是001002有的是001002003004等,我想取除最后3位的值怎么取来着,比如:如果是001002003,我想取的值是001002,就用一条语句。因为数据比较多一条一条手动改太慢了。
解决方案 »
- 请问这是什么原因?
- 怎样快速查出一个bug
- 为什么c#的SqlParameter能防注入
- 当DataGridViewComboBoxCell中Item过多的时候如何保证速度
- 有个难题,帮忙解决一下!谢谢!
- 一个郁闷了很久的问题
- 请教大虾们一个手机传送铃声和图片的问题?
- 弹出窗口一直在最前端
- 求.NET Framework环境的下载~~~~~~ 谢谢~~
- 请高手解惑:如果在程序里创建office(excel,outlook)等对象,这些(excel,outlook)对象会生成一个进程,那么调用(excel,outlook)对象的方
- 求上海(或周边比较近)高手做过类似项目一块做项目
- 寻求网络打印机的程序,打印机是通过网线,具有独立ip的那种
declare @value nvarchar(200)
select @value='001002003'
select stuff(@value,len(@value)-2,3,'') as TheEnd
/*
TheEnd
------------------
001002(1 行受影响)
*/
SQL> with tb as (select '001002003' as column1 from dual
2 union all select '001002' as column1 from dual)
3 select substr(tb.column1,0,length(tb.column1)-3) as result from tb;
RESULT
------------------
001002
001