就是一个函数,传B,得到A
传C,得到B
传Z,得到Y怎么实现最简单呢,我现在是一个一个判断的,很多个if语句
传C,得到B
传Z,得到Y怎么实现最简单呢,我现在是一个一个判断的,很多个if语句
解决方案 »
- 我想删除数据库中的一个用户和其相关的表空间,但是出错。
- 有办法安装ORALCE吗?
- 把查询出来的的数据一列分为两列的SQL语句怎么写啊?
- 求救,varchar2
- 怎样复制不同数据库的资料??
- oracle新手,要写procedure,有没有好的资料可以参考?有没有临时表返回数据集得例子,在线给分
- 帮忙修改这段ASP调用ORACLE的输出值。
- 高手请留步,急啊!!!。。。。。
- 我在Oracle里面建了一个触发器,为什么老是提示有错?谁帮我看一下。谢谢
- windows 2003 环境下 oracle 9i 迁移到10g r2(求教)
- 跪求高手指点!!!SQL plus登不上,协议适配器错误。PLSQL Developer可以登录
- 请教一个oracle查询的问题。谢谢
select ascii('a') value from dual
然后减一得到字符
select chr(97) value from dual组合起来即可.
select chr(ascii('a') - 1) value from dual
/*
v
-
a1 row selected.
*/select chr(ascii('c') - 1) "value" from dual
/*
v
-
b1 row selected.
*/select chr(ascii('z') - 1) "value" from dual
/*
v
-
y1 row selected.
*/
ASCII('A') ASCII('Z') ASCII('A') ASCII('Z')
1 97 122 65 90**/select chr(97), chr(122), chr(65), chr(90) from dual;
/** CHR(97) CHR(122) CHR(65) CHR(90)
1 a z A Z**/
begin
select translate(v_str,'ABCDEFGHIJKLMNOPQRSTUVWXYZ','BCDEFGHIJKLMNOPQRSTUVWXYZA') into v_ret from dual;
return v_ret;
end f_change_alph;
--test
select f_change_alph('Z') res from dual;
A
--将b当作参数传入
select decode('b','a','z',chr(ascii('b')-1)) as vaule from dual
(val1 varchar)
return varchar2
as
v_result varchar2;
begin
v_result:=(select decode(val1,'a','z',chr(ascii(val1)-1)) from dual);
return v_result;
end;
参考代码:
SELECT TRANSLATE(原始字符串, 'bcdefghijklmnopqrstuvwxyzaBCDEFGHIJKLMNOPQRSTUVWXYZA',
'abcdefghijklmnopqrstuvwxyzaABCDEFGHIJKLMNOPQRSTUVWXYZ');