佳木斯湛栽影视文化发展公司

主頁 > 知識庫 > DB2中REVERSE函數(shù)的實現(xiàn)方法

DB2中REVERSE函數(shù)的實現(xiàn)方法

熱門標(biāo)簽:鐵路電話系統(tǒng) 網(wǎng)站排名優(yōu)化 呼叫中心市場需求 地方門戶網(wǎng)站 百度競價排名 Linux服務(wù)器 服務(wù)外包 AI電銷

ORACLE:

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

REVERSE(
--------
4321

SQL> select reverse(12121) from dual;
select reverse(12121) from dual
               *
第 1 行出現(xiàn)錯誤:
ORA-00932: 數(shù)據(jù)類型不一致: 應(yīng)為 CHAR, 但卻獲得 NUMBER

說明oracle中reverse的參數(shù)是char類型,返回值也是char,到底是不是這樣,我們來驗證一下

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

LENGTH(REVERSE('1234'))
-----------------------
                      8

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

REVERSE('1234')
----------------
    4321

如果返回類型是varchar,長度應(yīng)該是4,所以返回值是char。參數(shù)類型也應(yīng)該是是char。

sql server:

reverse函數(shù)的參數(shù)類型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);  --發(fā)生類型轉(zhuǎn)換,應(yīng)該可以從執(zhí)行計劃中看出來
2> go

------------
4321

(1 行受影響)

 
基于oracle,sql server都內(nèi)置了reverse函數(shù),DB2也應(yīng)該有它的reverse函數(shù),因為有一定的應(yīng)用場景。

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;  --定義下標(biāo)
 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; --看執(zhí)行計劃,應(yīng)該可以看到類型轉(zhuǎn)換

4321

標(biāo)簽:崇左 湘潭 湖南 黃山 衡水 銅川 蘭州 仙桃

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《DB2中REVERSE函數(shù)的實現(xiàn)方法》,本文關(guān)鍵詞  ;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 收縮
    • 微信客服
    • 微信二維碼
    • 電話咨詢

    • 400-1100-266
    海口市| 靖远县| 略阳县| 迭部县| 万州区| 桦川县| 大丰市| 淳安县| 清苑县| 甘泉县| 北宁市| 泸水县| 辽阳县| 霞浦县| 扶绥县| 水富县| 友谊县| 陆河县| 深水埗区| 金坛市| 抚顺县| 汉沽区| 鞍山市| 张家港市| 迁安市| 清涧县| 墨脱县| 东乡县| 边坝县| 平潭县| 屏东市| 都江堰市| 桂东县| 永济市| 莱州市| 太湖县| 阿坝县| 南宁市| 瑞丽市| 金昌市| 贵南县|