DB2中REVERSE函数的实现方法
oracle:
sql> select reverse('1234') from dual;
reverse(
--------
4321
sql> select reverse(12121) from dual;
select reverse(12121) from dual
*
第 1 行出现错误:
ora-00932: 数据类型不一致: 应为 char, 但却获得 number
说明oracle中reverse的参数是char类型,返回值也是char,到底是不是这样,我们来验证一下
sql> select length(reverse('1234 ')) from dual;
length(reverse('1234'))
-----------------------
8
sql> select reverse('1234 ') from dual;
reverse('1234')
----------------
4321
如果返回类型是varchar,长度应该是4,所以返回值是char。参数类型也应该是是char。
sql server:
reverse函数的参数类型varchar或nvarchar,返回类型也是varchar或nvarchar
c:\>sqlcmd -s kermart -u sa -p sa -d master
1> select reverse('1234');
2> go
----
4321
(1 行受影响)
1> select reverse(1234); --发生类型转换,应该可以从执行计划中看出来
2> go
------------
4321
(1 行受影响)
基于oracle,sql server都内置了reverse函数,db2也应该有它的reverse函数,因为有一定的应用场景。
create or replace function reverse ( p1 varchar(200) ) returns varchar(200) specific "reverse" language sql deterministic no external action reads sql data begin declare v_str varchar(100) default ''; declare v_index integer; --定义下标 set v_index = length(p1); while(v_index >= 1) do set v_str = v_str||substr(p1,v_index,1); set v_index = v_index - 1; end while; return v_str; end@
测试一下
select reverse('123456') from dual;
654321
select reverse(1234) from dual; --看执行计划,应该可以看到类型转换
4321
上一篇: JS代码实现页面切换效果
下一篇: DB2比较常用与实用sql语句总结
推荐阅读
-
yii2中添加验证码的实现方法
-
PHP中substr_count()函数获取子字符串出现次数的方法,phpsubstr_count
-
PHP中round()函数对浮点数进行四舍五入的方法_PHP
-
PHP采用自定义函数实现遍历目录下所有文件的方法_PHP
-
Symfony2实现在controller中获取url的方法_php实例
-
PHP array_key_exists检查键名或索引是否存在于数组中的实现方法_php实例
-
PHP中实现生成静态文件的方法缓解服务器压力_PHP
-
php实现指定字符串中查找子字符串的方法,字符串中查找
-
node.js中实现kindEditor图片上传功能的方法教程
-
在smarty中调用php内置函数的方法_PHP教程