我不知道如何开始在我的问题上搜索答案。找不到合适的词。如果你能指出我正确的方向,那就太好了。
基本上,我的问题是。 我有一个源值示例是929-123-12-1111, 但它也包含值123 ---,如果值为123 ---我想要做的是更新/更改为123-000-00-0000。
这可以在select语句中执行吗?
从表
中选择numcode答案 0 :(得分:1)
你可以删除所有连字符,用0填充它并重新组合结果,如SUBSTRING(1, 3) + '-' + SUBSTRING(4, 3) + '-'
...
WITH T1 AS
(
SELECT *, REPLACE(Id, '-', '') AS IdNoHyphen
FROM (VALUES ('929-123-12-1111'), ('123---'), ('123-456--')) AS T(Id)
),
T2 AS
(
SELECT *, LEFT(IdNoHyphen + '00000000000', 12) AS Padded
FROM T1
)
SELECT SUBSTRING(Padded, 1, 3) + '-'
+ SUBSTRING(Padded, 4, 3) + '-'
+ SUBSTRING(Padded, 7, 2) + '-'
+ SUBSTRING(Padded, 9, 4)
FROM T2