DB2中REVERSE函数的实现方法_DB2

来源:脚本之家  责任编辑:小易  

跟order by一样的规则illegalrate小的排前面,大的排后面,这2种情况后面3列不用看;相等时看reportnum,若reportnum小则排前面,若reportnum大则排后面,若相等则看waitdonum,依次往后比较www.zgxue.com防采集请勿采集本网。

ORACLE:

这个函数主要和row_number,rank等函数一同使用,用于指定这些函数列的排序方式,例如row_number over(order by id,name)

SQL> select reverse('1234') from dual;

因为你按照日期分组了!如果你想去最大的日期像下面这样写就可以了!select max(OrderDate)as OrderDate from dbo.Orders 你要取的是每个月最大值不是吗?所以你的SQL应该是没有问题的!20121112

REVERSE(

比如说一张表T中有一个名为DATE的日期型字段 第一种方法: SELECT DATE,DATENAME(DATE)FROM T 即使用DB2 DATENAME日期函数获得星期名,如Monday,Tuesday等等;第二种方法: SELECT DATE,

--------

是,这是return子句确定创建的函数类型。

4321

与CHARINDEX 函数不同的是,PATINDEX函数的子串中可以使用通配符,且此函数可用于CHAR、VARCHAR 和TEXT 数据类型。五、字符串操作函数 1、QUOTENAME() 返回被特定字符括起来的字符串。QUOTENAME(<’

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'))

--------

是,这是return子句确定创建的函数类型。

---------------

                      8

SQL> select reverse('1234    ') from dual;

REVERSE(

比如说一张表T中有一个名为DATE的日期型字段 第一种方法: SELECT DATE,DATENAME(DATE)FROM T 即使用DB2 DATENAME日期函数获得星期名,如Monday,Tuesday等等;第二种方法: SELECT DATE,

'1234')

--------

是,这是return子句确定创建的函数类型。

--------

    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

与CHARINDEX 函数不同的是,PATINDEX函数的子串中可以使用通配符,且此函数可用于CHAR、VARCHAR 和TEXT 数据类型。五、字符串操作函数 1、QUOTENAME() 返回被特定字符括起来的字符串。QUOTENAME(<’

(1 行受影响)

1> select reverse(1234);  --发生类型转换,应该可以从执行计划中看出来

2> go

------------

4321

与CHARINDEX 函数不同的是,PATINDEX函数的子串中可以使用通配符,且此函数可用于CHAR、VARCHAR 和TEXT 数据类型。五、字符串操作函数 1、QUOTENAME() 返回被特定字符括起来的字符串。QUOTENAME(<’

(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 DATABEGIN 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

先写一个 REVERSE 函数,用于字符串反转。(REVERSE 函数 Oracle 和 SQL Server 都有的,DB2 有可能没有。你可以去百度查下“db2 REVERSE”这样的关键字。调用的时候,就是 REVERSE('test_ip_steal')返回结果是 laets_pi_tset然后使用 POSSTR,找到 反转后的 第一个_的位置。就是 POSSTR(REVERSE('test_ip_steal'))相当于 POSSTR('laets_pi_tset')返回结果是 6然后用 SUBSTR 函数,取得 后面的信息就是 SUBSTR(REVERSE('test_ip_steal'),POSSTR(REVERSE('test_ip_steal')+1)相当于 SUBSTR('laets_pi_tset',6+1)返回结果是 pi_tset最后再把上面的结果,再反转一次,就是你要的最终结果了。REVERSESUBSTR(REVERSE('test_ip_steal'),POSSTR(REVERSE('test_ip_steal')+1)内容来自www.zgxue.com请勿采集。


  • 本文相关:
  • db2编程序技巧 (三)
  • db2中reverse函数的实现方法
  • db2 9(viper)快速入门
  • 如何访问大型机、小型机上的db2 9数据服务器
  • db2 导入导出单个表的操作详解
  • db2编程序技巧(1)
  • 常见数据库系统比较 db2数据库
  • db2编程序技巧 (五)
  • db2编程序技巧 (四)
  • db2个人版(linux)安装
  • db2 字符串处理
  • DB2 over函数
  • DB2 自定义函数
  • db2自定义函数查找字符“,”在字段中第N次出现的位置
  • db2 里 over函数 是什么意思
  • 请问想要在db2x数据库中使用max函数应该怎么处理?
  • db2中如何查询某天是星期几(一周的第几天)?
  • DB2中 主要的三种函数类型是什么
  • 刚学db2 有高手知道字符串的有关函数和具体用法吗?
  • 请问DB2中怎样用fetch查询从n到m行
  • 网站首页网页制作脚本下载服务器操作系统网站运营平面设计媒体动画电脑基础硬件教程网络安全mssqlmysqlmariadboracledb2mssql2008mssql2005sqlitepostgresqlmongodbredisaccess数据库文摘数据库其它首页db2db2编程序技巧 (三)db2中reverse函数的实现方法db2 9(viper)快速入门如何访问大型机、小型机上的db2 9数据服务器db2 导入导出单个表的操作详解db2编程序技巧(1)常见数据库系统比较 db2数据库db2编程序技巧 (五)db2编程序技巧 (四)db2个人版(linux)安装db2 常用命令小结db2数据库的备份和恢复db2优化(简易版)ibm db2 日常维护汇总(一)db2数据库的安装db2常用傻瓜问题1000问(一)db2比较常用与实用sql语句总结db2数据同步方面的经验db2常用傻瓜问题1000问(四)db2个人版(linux)安装ibm db2 日常维护汇总(五)db2 udb v8.1管理学习笔记(二)mysql数据库结构和数据的导出和导入centos下db2数据库安装过程详解db2 9的九大新特性使用xquery查询db2 xml数据db2 udb v8.1管理学习笔记(三)db2大事记db2 select语句高级用法db2 常用命令小结
    免责声明 - 关于我们 - 联系我们 - 广告联系 - 友情链接 - 帮助中心 - 频道导航
    Copyright © 2017 www.zgxue.com All Rights Reserved