Oracle

如何使用模式格式化字元串

  • August 27, 2017

我想在我的選擇語句中格式化我的字元串,但我似乎找不到這種模式的語法。

我有一列 card_num 有 16 位數字,我想在前四位數字之後有一個破折號(-)。

原卡號:1234567891234567

期望輸出:1234-567891234567

我認為正則表達式可以做到這一點,但無法在其他地方找到該模式的正確程式碼。

知道怎麼做嗎?謝謝。

您可以使用 substr() 和連接 (Oracle 12c):選擇前 4 個字元,然後連接“-”和字元串的其餘部分。

create table t
as
select '1234567891234567' card_num from dual;

select card_num
, substr(card_num, 1,4) || '-' || substr(card_num, 5, length(card_num) - 4) 
 formatted
from t;

SQL> select card_num
 2  , substr(card_num, 1,4) || '-' || substr(card_num, 5, length(card_num) - 4) 
 3    formatted
 4  from t;

CARD_NUM          FORMATTED          
1234567891234567  1234-567891234567 

…對於此範例,該表“過大” - 但它可能更容易試驗/調整您的查詢。

引用自:https://dba.stackexchange.com/questions/184428