我有一張名為 test 的表。有幾條記錄具有未格式化的 SSN(即它們缺少破折號)
他們是:
123456789
當我希望它們被格式化為:
123-45-6789
我想運行一個腳本,該腳本可以在這兩個破折號中插入這樣的記錄,這些記錄是具有 9 個字符的字串。
uj5u.com熱心網友回復:
如果您需要更新行,您可以使用以下insert()字串語法來檢查其功能:
with test as (
select '123456789' as ssn
)
select insert(insert(ssn,4,0,'-'),7,0,'-')
from test;
update test set ssn=insert(insert(ssn,4,0,'-'),7,0,'-')
where ssn not like '%-%';
將資料保持原樣并添加一個生成的列來實作上述插入語法可能是一個更好的主意。這取決于您沒有向我們展示的資料。
uj5u.com熱心網友回復:
使用正則運算式函式的解決方案
update test set SSN = regexp_replace(SSN, '([0-9]{3})([0-9]{2})([0-9]{4})$','\\1-\\2-\\3') where SSN RLIKE '^[0-9]{9}$'
select * from test| 社會保障號 | | :------------ | | 123-45-6789 |
db<>在這里擺弄
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/422032.html
標籤:
