ORACLE SQL Substr Replace length 併用 | oracle sql replace
「99年12月25日起部分縣市改制為直轄市(五都升格)」本中心所有系統需配合相關縣市的「地址變更」與「系統地址相關功能調整」必須要把目前DB資料,全部校正,校正邏輯為1.新北市(原台北縣改制)2.臺中市(臺中市、臺中縣合併改制)3.臺南市(臺南市、臺南縣合併改制)4.高雄市(高雄市、高雄縣合併改制)5.「鄉、鎮、市」改「區」,村改「里」,街路名稱維持不變嗯…Substr用來抓出一個欄位資料中的其中一部分….嘖!不夠嗯…Replace函數是用來改變一個字串的內容….嘖!不行嗯…length長度函數是用來找出一個字串的長度….咦!耶耶~OhYa!...
「99年12月25日起部分縣市改制為直轄市(五都升格)」本中心所有系統需配合相關縣市的「地址變更」與「系統地址相關功能調整」必須要把目前DB資料,全部校正,校正邏輯為1. 新北市(原台北縣改制)2. 臺中市(臺中市、臺中縣合併改制)3. 臺南市(臺南市、臺南縣合併改制)4. 高雄市(高雄市、高雄縣合併改制)5.「鄉、鎮、市」改「區」,村改「里」,街路名稱維持不變
嗯…Substr 用來抓出一個欄位資料中的其中一部分….嘖!不夠嗯…Replace 函數是用來改變一個字串的內容….嘖!不行嗯…length 長度函數是用來找出一個字串的長度….咦!耶耶~Oh Ya! 有頭緒了!
是不是該來個修改之前,修改後的比較咧!————————————————————————————————-UPDATE tb_companySET address = replace(substr(address,1,3),‘台北縣’,‘新北市’) || substr(address,4,length(address))————————————————————————————————-before address:台北縣三芝鄉古庄村四棧橋4鄰23-2號after address:新北市三芝鄉古庄村四棧橋4鄰23-2號————————————————————————————————-
再來個 Oh Ya!成功啦! 來個注釋唄~使用 UPDATE 指令,將欲更新 TB_COMPANY.ADDRESS一併更新再者將新值填入於 SET 後 replace(substr(address,1,3),‘台北縣’,‘新北市’)意指使用 replace 將我要的欄位有包含‘台北縣’的字,一併修改為‘新北市’但是…我的欄位內如果是【台北縣三芝鄉台北縣古庄村四棧橋4鄰23-2號】有兩個‘台北縣’怎麼辦?沒關西!所以再加上 substr 運用不就好啦從第一個字元開始算到第三個字元是‘台北縣’才修改為‘新北市’但是…我的欄位依照上述修改法則後,卻只變成‘新北市’耶…怎麼辦?還是沒關西!用 || 分隔符號與之區隔後再加上 substr & length 就可以從第四個字元開始保留後面的字啦!|| substr(address,4,length(address))就...