客户要求把一个字段里的是 有PDY字样的后5位代码含字母的定义为 非法代码需要置空。
请问如何实现?
请问如何实现?
解决方案 »
- 求个SQL语句 ,请诸位大哥帮帮忙
- plsql登录oracle问题
- 求一高难度的sql 查询统计语句
- 高分请教与探讨,关于long和long raw移植的问题...
- oracle客户端如何连接到服务器数据库?
- 急,pl/sql deve创建存储过程出错, status 为 INVALID
- 求教一个很菜的问题:用SQL Plus 8.0连接其他服务器上的ORACLE8.0.5
- 高分低级问题求解:
- 存储过程中,传递字符串类型参数,提示java.sql.SQLException: ORA-00904: "采购部": 标识符无效
- 创建view时有动态列的问题
- 如何在一个bat文件中执行一个sql语句?急急急!!!
- oracle 一个用户创建另外一个用户的试图
还有一个问题,PDY开头的是共9位
如果PDY后的5位都是数字,第6位是字母 则认为合法
比如PDY12345X 这个是合法的,只判断PDY后的5位是不是字母。 您发的语句则执行,好像不对,比如
Select decode(substr(dept_code,1,3),'PDY',translate(dept_code,'PDY1234567890abcefghigklmnoqrstuvwxzABCEFGHIJKLMNOQRSTUVWXZ','PDY1234567890'),dept_code)
From irpt_departments Where dept_code Like 'PDY%'
不管正确与否都显示出来了
Select decode(substr(dept_code,1,3),'PDY',translate(dept_code,'PDY1234567890'),dept_code) From irpt_departments
这个提示参数个数无效请问是怎么回事?多谢
不过translate是做替换,不是判断无效
比如说PDY123P45
你想把它变成怎么样SELECT DECODE
(SUBSTR (:INSTR, 1, 3),
'PDY', 'PDY'
|| TRANSLATE
(SUBSTR (:INSTR, 4, 5),
'1234567890abcdefghigklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ',
'1234567890'
)
|| SUBSTR (:INSTR, 9),
:INSTR
)
FROM DUAL输入PDY123P45
出来PDY12345
输入PDY123P45D
出来PDY12345D
'PDY'
|| TRANSLATE
(SUBSTR (:INSTR, 4, 5),
'1234567890abcdefghigklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ',
'1234567890----------------------------------------------------'
)
|| SUBSTR (:INSTR, 9),
反正把字母替换成字段里不会出现的
然后再查找就简单了
http://blog.csdn.net/annicybc/archive/2008/04/10/2277263.aspx