Sql 从字母数字字符串中删除字符并更新列中的数值
我有一列包含字母数字值,比如A1234、5678Q。我想从字符串中删除字符,只想更新剩余的数值 我尝试使用SUBSTR和创建函数,但它只给了我字符值Sql 从字母数字字符串中删除字符并更新列中的数值,sql,sql-server,string,Sql,Sql Server,String,我有一列包含字母数字值,比如A1234、5678Q。我想从字符串中删除字符,只想更新剩余的数值 我尝试使用SUBSTR和创建函数,但它只给了我字符值 我想删除字符并用数字值更新列,例如A1234变为1234。假设只有一个非数字字符,您可以使用: SELECT val , CASE WHEN PATINDEX('%[^0-9]%', val) > 0 THEN STUFF(val, PATINDEX('%[^0-9]%', val), 1, '')
我想删除字符并用数字值更新列,例如A1234变为1234。假设只有一个非数字字符,您可以使用:
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)
是否只有一个非十进制字符?是,只有一个字符