我有一列包含字母数字值,例如A1234、5678Q。我想从字符串中删除字符,并且只想更新剩余的数值。
我尝试使用SUBSTR并创建函数,但是它只给我字符值。
我想删除字符并用数字值更新列,例如A1234变成1234。
答案 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)