簡化SQL式計算之固定排序,簡化sql排序

來源:互聯網
上載者:User

簡化SQL式計算之固定排序,簡化sql排序

   在資料庫應用開發中,我們經常要面對複雜的SQL式計算,固定排序就是其中一種。固定排序不是按照某個欄位升序或降序排序,而是有著固定的順序,比如按照2,3,1的順序排序,或者按照”DSGC”,”TAS”,”GC”,”HU”的順序來排序。如果允許在資料庫建一張表來儲存依據,那就可以用join語句來實現排序。但很多時候排序依據是變動的,或者資料庫不能建表,這時就需要先union再join,或者用decode函數。排序依據比較短的時候可以這樣做,但排序依據有時候很長,會導致手工書寫很長的union字串和decode字串,出錯率會很高。

   集算器可以輕鬆實現固定排序,下面用例子來說明。

   表LIQUORS記錄著大量的酒品庫存,現在需要按照固定的LID順序排序,比如“2,1,3,4,5…”。表LIQUORS的部分資料如下:


   集算器代碼:


   A1:從資料庫取數,部分結果如下:


   A2=A1.align@s([2,1,3,4,5], LID)這句代碼將A1對象中的LID欄位,按照2,1,3,4,5的順序排列,結果如下:


   上述排序依據可以是外部參數,比如定義一個參數arg1,將A2中的代碼改為:=A1.align(arg1, LID)。執行指令碼(也可以通過JAVA或報表調用),在參數介面輸入:[2,1,3,4,5],如下:


   計算後結果和之前完全一樣。

   集算器不僅能解決固定排序的問題,還能進行固定分組,可參考《集算器簡化SQL式計算之固定分組》

   另外,集算器可被報表工具或java程式調用,調用的方法也和普通資料庫相似,使用它提供的JDBC介面即可向java主程式或報表工具返回ResultSet形式的計算結果,具體方法可參考相關文檔。


著作權聲明:本文為博主原創文章,未經博主允許不得轉載。

相關文章

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.