這題又是考Regex,我們先根據題意,操作如下:
hr@OCM> col "PHONE NUMBER" for a50 hr@OCM> SELECT phone_number,REGEXP_REPLACE(phone_number,'([[:digit:]]{3})\.([[:digit:]]{3})\.([[:digit:]]{4})','(\1) \2-\3') "PHONE NUMBER" 2 FROM employees; PHONE_NUMBER PHONE NUMBER -------------------- -------------------------------------------------- 650.507.9833 (650) 507-9833 650.507.9844 (650) 507-9844 515.123.4444 (515) 123-4444 011.44.1644.429264 011.44.1644.429264 011.44.1644.429263 011.44.1644.429263 011.44.1644.429262 011.44.1644.429262 省略結果。。。。。 650.501.4876 (650) 501-4876 650.507.9811 (650) 507-9811 650.507.9822 (650) 507-9822 107 rows selected.
根據查詢結果可以得出正確答案是:C
*************************************************************
REGEXP_REPLACE函數
讓我們首先看一下傳統的REPLACE SQL函數,它把一個字串用另一個字串來替換。假設您的資料在本文中有不必要的空格,您希望用單個空格來替換它們。利用REPLACE函數,您需要準確地列出您要替換多少個空格。然而,多餘空格的數目在本文的各處可能不是相同的。下面的樣本在Joe和Smith之間有三個空格。REPLACE函數的參數指定要用一個空格來替換兩個空格。在這種情況下,結果在原來的字串的Joe和Smith之間留下了一個額外的空格。
SELECT REPLACE('Joe Smith',' ', ' ') AS replace FROM dual REPLACE --------- Joe Smith
REGEXP_REPLACE函數把替換功能向前推進了一步,其文法在表 9中列出。以下查詢用單個空格替換了任意兩個或更多的空格。( )子運算式包含了單個空格,它可以按{2,}的指示重複兩次或更多次。
SELECT REGEXP_REPLACE('Joe Smith', '( ){2,}', ' ') AS RX_REPLACE FROM dual RX_REPLACE ---------- Joe Smith