今天在优快云看见网友问了一个这样的问题。
《问题描述》:
TEST表有个字段NAME是VARCHAR2类型,里面的数据既有字母又有数字形式的列。例如:ABE89,322de。我如何对这些数据进行减1变成ABE88,322dd
原贴:http://community.youkuaiyun.com/Expert/topic/5634/5634437.xml?temp=.6460535
〈我的解答〉:
[@more@]SQL> select substr(name,1,length(name)-1)||chr(ascii(substr(name,-1)) -1)
2 from test where id in (12,13);
SUBSTR(NAME,1,LENGTH(NAME)-1)||CHR(ASCII(S
------------------------------------------
hl2321
12hhic
SQL> select name from test where id in(12,13);
NAME
--------------------
hl2322
12hhid
SQL>
这个就是利用了ORACLE的函数ASCII和CHR,其实知道了这几个函数也就没有什么难度。
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/728254/viewspace-923531/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/728254/viewspace-923531/