2015-02-05 25 views
2

Ex.Table商店逗號修剪前導零分隔值一列

store_id    Employee_id 
0020,0345,0002345 0234 
0034     0943 

我試圖REPLACE(LTRIM(REPLACE(store_id,'0',' ')),' ','0')但它修剪單獨的第一個值前導零。 如何獲得一個員工的所有storeIds在sql查詢中沒有前導零?

可能嗎?

+0

當然 - 你有沒有想過如何先分開逗號分隔值? – 2015-02-05 17:42:35

+2

你使用什麼數據庫?你爲什麼要用逗號分隔的字符串存儲id而不是使用聯結表? – 2015-02-05 17:43:13

+0

mysql和是的我用逗號分隔的字符串存儲ID。 – Learner2011 2015-02-05 17:43:59

回答

0

如果你只是想刪除前導零 - 有沒有太多 - 您可以使用replace()

select substr(replace(replace(replace(concat(',', store_id), ',0', ','), 
           ',0', ','), 
         ',0', ',') 
       2, length(store_id) 

這只是代替了逗號,然後用逗號零,加並在字符串的開頭和結尾刪除一個逗號。不同的數據庫的名稱略有不同substr()length(),但功能通常在那裏。

3

如果這是一個rdbms中的表,它違反了1NF。你應該避免這樣做。如果您可以使用聯結表或參考表。否則,您可以使用相同的模式並插入與單個Employee_id對應的多個條目。

現在,要以通用方式解決此問題,只有一個解決方案,UDF的用戶自定義功能規格爲here

或將此類處理移至客戶端。