DB2中REVERSE函數的實現方法_DB2

來源:腳本之家  責任編輯:小易  

跟order by一樣的規則illegalrate小的排前面,大的排后面,這2種情況后面3列不用看;相等時看reportnum,若reportnum小則排前面,若reportnum大則排后面,若相等則看waitdonum,依次往后比較www.13333515.buzz防采集請勿采集本網。

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;[email protected]

測試一下

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.13333515.buzz請勿采集。


  • 本文相關:
  • 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.13333515.buzz All Rights Reserved
    3排列五开奖结果