剛剛有個 pig 寫了個補 0 的 SQL 問我怎麼寫不出來

主要當然是他沒把數字轉字串所以 SQL 很雞婆會自動轉回數字
其次是他的技巧是 先判斷數字的長度 然後再不斷用 case-when 補字串 '000...'
換句話說 如果最大可能補 10 個 0 他的 SQL 就要寫 10 組 case-when

經過本大師的指導 只要以下這行就搞定了...

 
substring('0000000000', 1, 10 - len(a)) + a



所以啊... 沒有 java 想弄個補 0 其實也不難喔!!!

引用自:藍色小惡魔用 SQL 把數字補 0
http://www.imp.idv.tw/play/forum/viewthread?thread=741

感謝 juevampire 大大補充,引用各資料庫之 function 語法如下:

-- SQL Server:  
select replicate('0', (10-len('123')))+'123' 

-- Oracle:  
SELECT LPad('123',10,'0') FROM dual 

-- DB2:  
values char(repeat('0',10-length('123'))||'123',10)


2017-02-05:404



arrow
arrow

    藍色小惡魔 發表在 痞客邦 留言(0) 人氣()