多多色-多人伦交性欧美在线观看-多人伦精品一区二区三区视频-多色视频-免费黄色视屏网站-免费黄色在线

國內最全IT社區平臺 聯系我們 | 收藏本站
阿里云優惠2
您當前位置:首頁 > 數據庫 > sybase > Sybase(sqlanywhere)比較應用版本大小數據庫函數

Sybase(sqlanywhere)比較應用版本大小數據庫函數

來源:程序員人生   發布時間:2013-12-11 14:15:55 閱讀次數:3702次


Sybase(sqlanywhere)比較應用版本大小數據庫函數

 

前置條件:版本以"."進行分割。    

 

[sql]

ALTER FUNCTION "SMM"."fn_justsy_zh_compare_app_version"(   

    IN  p_original      VARCHAR(50)   

   ,IN  p_compare       VARCHAR(50)  

 )  

RETURNS INTEGER  

DETERMINISTIC  

    -- 比較應用版本、  

    -- p_original > p_compare return -1  

    -- p_original = p_compare return 0  

    -- p_original > p_compare return 1  

BEGIN  

    DECLARE lv_comp         INTEGER;  

    DECLARE lv_ori_index    INTEGER;  

    DECLARE lv_com_index    INTEGER;  

    DECLARE lv_sort_key     INTEGER;  

    DECLARE lv_sort_index   INTEGER;  

  

--    DECLARE lv_last_ori     VARCHAR(20);  

--    DECLARE lv_last_com     VARCHAR(20);  

--    DECLARE lv_temp_ori VARCHAR(20) ;  

--    DECLARE lv_temp_com VARCHAR(20) ;  

--    DECLARE lv_temp_sort INTEGER;  

  

    DECLARE LOCAL TEMPORARY TABLE SplitTable ( SortKey INTEGER DEFAULT AUTOINCREMENT, OriVal VARCHAR(20), ComVal VARCHAR(20), PRIMARY KEY(SortKey));  

    --------  Init Value-------  

    SET lv_comp = -1 ;      

    SET p_original = TRIM(p_original) ;      

    SET p_compare =  TRIM(p_compare) ;  

    SET lv_sort_key = 1 ;      

    --------  Init Value-------  

  

    -- 拆分出p_original變量中字符串  

    SET lv_ori_index = CHARINDEX('.', p_original) ;  

    WHILE lv_ori_index >= 1 LOOP  

        INSERT INTO SplitTable( OriVal) VALUES (LEFT(p_original,lv_ori_index -1)) ;  

        SET p_original = SUBSTR(p_original,lv_ori_index + 1,LENGTH(p_original)-lv_ori_index) ;  

        SET lv_ori_index = CHARINDEX('.', p_original) ;  

    END LOOP ;      

    INSERT INTO SplitTable(OriVal) VALUES (p_original) ;  

  

    -- 拆分p_compare變量中字符串  

    SET lv_com_index = CHARINDEX('.', p_compare) ;   

    WHILE lv_com_index >= 1 LOOP  

        INSERT INTO SplitTable(SortKey, ComVal) ON EXISTING UPDATE VALUES(lv_sort_key,LEFT(p_compare,lv_com_index -1)) ;  

        SET p_compare = SUBSTR(p_compare,lv_com_index + 1,LENGTH(p_compare)-lv_com_index) ;  

        SET lv_com_index = CHARINDEX('.', p_compare) ;  

        SET lv_sort_key = 1 + lv_sort_key ;  

    END LOOP ;      

    INSERT INTO SplitTable(SortKey, ComVal) ON EXISTING UPDATE VALUES(lv_sort_key, p_compare) ;  

      

--    FOR compare_temp AS compare_temp_cursor NO SCROLL CURSOR FOR  

--         SELECT OriVal, ComVal, SortKey FROM SplitTable ORDER BY SortKey FOR READ ONLY  

--    DO  

--        INSERT INTO dba.ml_temp(PFName,PFXMLValue) VALUES('fn_justsy_zh_compare_app_version',OriVal+'---'+ComVal+'--'+STRING(SortKey)) ;  

--    END FOR ;  

  

    -- 比較  

    compare_loop_for:  

    FOR compare_loop AS compare_loop_cursor NO SCROLL CURSOR FOR  

        SELECT OriVal, ComVal, SortKey FROM SplitTable ORDER BY SortKey FOR READ ONLY  

    DO  

        IF(OriVal IS NOT NULL AND ComVal IS NOT NULL) THEN  

            IF(OriVal > ComVal) THEN  

                SET lv_comp = 1 ;  

                LEAVE compare_loop_for ;   

            ELSEIF(OriVal < ComVal) THEN  

                SET lv_comp = -1 ;  

                LEAVE compare_loop_for ;   

            ENDIF ;  
 

            -- 版本相同的情況  

            IF(lv_sort_index = SortKey AND OriVal = ComVal) THEN  

                SET lv_comp = 0 ;  

            ENDIF ;             

        ELSEIF(OriVal IS NULL ) THEN  

            SET lv_comp = -1 ;  

            LEAVE compare_loop_for ;   

        ELSEIF(ComVal IS NULL) THEN   

            SET lv_comp = 1 ;  

            LEAVE compare_loop_for ;   

        END IF ;  

        SET lv_sort_index = lv_sort_index + 1 ;  

    END FOR ;      

  

    RETURN lv_comp;  

END  

調用:

 

[sql] 

select fn_justsy_zh_compare_app_version('c.26.89.1','b.25.89.1') ;

 

生活不易,碼農辛苦
如果您覺得本網站對您的學習有所幫助,可以手機掃描二維碼進行捐贈
程序員人生
------分隔線----------------------------
分享到:
------分隔線----------------------------
關閉
程序員人生
主站蜘蛛池模板: 中日韩欧美一级毛片 | 春色网站 | 国产精品视频免费一区二区三区 | 看片一区 | 国产精品免费_区二区三区观看 | 日本a毛片在线播放 | 日韩精品一区二区三区视频网 | 欧美在线观看视频一区 | 亚洲欧美日韩另类精品一区二区三区 | 国产美女一级做受在线观看 | 亚洲天堂欧美 | 免费精品国产 | 这里是九九伊人 | 国产三级国产精品国产国在线观看 | 免费精品久久久视频 | 亚洲资源最新版在线观看 | 久久.com| 国产精品久久精品视 | 日韩中文字幕视频在线观看 | 一级毛片aaaaaa视频免费看 | 噜噜噜噜噜在线观看视频 | 久久精品久久精品国产大片 | 亚洲永久精品一区二区三区 | 国产日韩亚洲欧洲一区二区三区 | 亚洲欧美精品日韩欧美 | 国产日韩精品一区二区在线观看播放 | 视频自拍网 | 亚洲第一视频在线观看 | 在线天堂在线 | 亚洲色图网站 | 怡春院欧美一区二区三区免费 | 国产在线a不卡免费视频 | 一区二区三区亚洲 | 全亚洲最大的免费影院 | 簧片免费在线观看 | 尤物视频在线观看 | 亚洲噜噜噜噜噜影院在线播放 | 美女网站在线观看视频免费的 | 国产一级特黄aa级特黄裸毛片 | 欧美一级α片 | 国产成人午夜91精品麻豆剧场 |