2012-06-21 57 views
1

之間我有一個有趣的場景,以數字,字母和數字之間添加​​。SQL添加「 - 」號-alphates號碼

實施例:

輸入:123AB56;輸出:123-AB-56;

輸入:56XYZ777;輸出:56-XYZ-777;

沒有爲所述源數據沒有規則圖案。

在此的任何輸入被理解。

+0

你必須嘗試的東西,然後問問題,當你有問題。 '我們覺得最好的堆棧溢出的問題,有一點在他們的源代碼,但如果你的問題一般包括...'見http://stackoverflow.com/faq –

+0

不是很容易對前14.你會Teradata的任何版本需要一個UDF來有效地完成它。隨着Teradata 14使用其原生正則表達式支持。 –

回答

3

如果它是一個相對更高版本的Oracle,有regexp_replace對於這些類型的任務:

SELECT 
    REGEXP_REPLACE(YOURFIELD, 
       '([[:digit:]]+)([[:alpha:]]+)([[:digit:]]+)', 
       '\1-\2-\3') REPLACED_RESULTS 
    FROM YOURTABLE;