剔除地址中全型數字字元最直接作法即可使用REPLACE函數,但需採用呼叫函數10次,或近似迴圈想法才可解決,以下介紹TRANSLATE函數及REGEXP_REPLACE函數,新版MSSQL已提供TRANSLATE函數,MSSQL使用者可嘗試使用。
1. TRANSLATE函數
此函數可使用字元對應轉換(即翻譯),此函數將依照轉換(string_to_replace:replacement_string)定義(N:1)進行轉換,如無可對應者則轉為空字串,請特別注意replacement_string不得為空字串,否則將轉為NULL。範例中也展示如何將全形數字轉為半形數字。
TRANSLATE( string1,
string_to_replace, replacement_string )
|
2. REGEXP_REPLACE函數
REGEXP_REPLACE(source_string
, pattern
[, replace_string [, position [,occurrence, [match_parameter]]]]
)
|
SELECT Addr
, TRANSLATE(Addr, '@0123456789', '@')
, TRANSLATE(Addr, '@0123456789', '@0123456789')
,
REGEXP_REPLACE(Addr, '[0123456789]','')
FROM
(
SELECT
'10090台北市中正區羅斯福路9段1號3樓' Addr
FROM DUAL
UNION ALL
SELECT
'100台北市中正區幸忠孝東路9段19號4樓'
FROM DUAL
UNION ALL
SELECT
'台北市中正區忠孝東路5段49號'
FROM DUAL
)
沒有留言:
張貼留言