Oracle
如何使用模式格式化字元串
我想在我的選擇語句中格式化我的字元串,但我似乎找不到這種模式的語法。
我有一列 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
…對於此範例,該表“過大” - 但它可能更容易試驗/調整您的查詢。