Ex.Table商店逗號修剪前導零分隔值一列
store_id Employee_id
0020,0345,0002345 0234
0034 0943
我試圖REPLACE(LTRIM(REPLACE(store_id,'0',' ')),' ','0')
但它修剪單獨的第一個值前導零。 如何獲得一個員工的所有storeIds在sql查詢中沒有前導零?
可能嗎?
Ex.Table商店逗號修剪前導零分隔值一列
store_id Employee_id
0020,0345,0002345 0234
0034 0943
我試圖REPLACE(LTRIM(REPLACE(store_id,'0',' ')),' ','0')
但它修剪單獨的第一個值前導零。 如何獲得一個員工的所有storeIds在sql查詢中沒有前導零?
可能嗎?
如果你只是想刪除前導零 - 有沒有太多 - 您可以使用replace()
:
select substr(replace(replace(replace(concat(',', store_id), ',0', ','),
',0', ','),
',0', ',')
2, length(store_id)
這只是代替了逗號,然後用逗號零,加並在字符串的開頭和結尾刪除一個逗號。不同的數據庫的名稱略有不同substr()
和length()
,但功能通常在那裏。
如果這是一個rdbms中的表,它違反了1NF。你應該避免這樣做。如果您可以使用聯結表或參考表。否則,您可以使用相同的模式並插入與單個Employee_id對應的多個條目。
現在,要以通用方式解決此問題,只有一個解決方案,UDF的。 用戶自定義功能規格爲here
或將此類處理移至客戶端。
當然 - 你有沒有想過如何先分開逗號分隔值? – 2015-02-05 17:42:35
你使用什麼數據庫?你爲什麼要用逗號分隔的字符串存儲id而不是使用聯結表? – 2015-02-05 17:43:13
mysql和是的我用逗號分隔的字符串存儲ID。 – Learner2011 2015-02-05 17:43:59