从字母数字字符串中删除字符并更新列中的数值

时间:2019-11-07 18:03:07

标签: sql sql-server string

我有一列包含字母数字值,例如A1234、5678Q。我想从字符串中删除字符,并且只想更新剩余的数值。

我尝试使用SUBSTR并创建函数,但是它只给我字符值。

我想删除字符并用数字值更新列,例如A1234变成1234。

1 个答案:

答案 0 :(得分:1)

假设只有一个非数字字符,您可以使用此字符:

SELECT val
     , CASE
           WHEN PATINDEX('%[^0-9]%', val) > 0 THEN STUFF(val, PATINDEX('%[^0-9]%', val), 1, '')
           ELSE val
       END AS val_fixed
FROM (VALUES
    ('A1234'),
    ('5678Q'),
    ('12345')
) AS tests(val)