首页 > 解决方案 > 从字符串中删除前导 0 和字母数字值

问题描述

我在列中有值,即 A1234、B0045、P0123 我需要从字符串中删除字符和前导 0。

我尝试了几件事,我创建了一个函数来处理这个问题,并且在我使用正则表达式的函数中。

PATINDEX('%[^0-9]%', @strText)

我希望将结果存储在下面的列中

A1234 -> 1234
B0045 -> 45 
P0123 -> 123

请建议

标签: sqlsql-server

解决方案


你的模式是错误的。
尝试这个:

DECLARE @strText VARCHAR(20) = 'B0045';
SELECT SUBSTRING(@strText, PATINDEX('%[1-9]%', @strText), LEN(@strText)) AS result

请参阅演示
如果要更新列:

UPDATE tablename
SET col = SUBSTRING(col, PATINDEX('%[1-9]%', col), LEN(col))

推荐阅读