我在A1234,B0045,P0123列中有值 我需要从字符串中删除字符并以0开头。
我尝试了几件事,我创建了一个函数来处理此问题,并且我正在使用正则表达式。
PATINDEX('%[^0-9]%', @strText)
我希望结果存储在下面的列中
A1234 -> 1234
B0045 -> 45
P0123 -> 123
请提出建议
答案 0 :(得分:2)
您的模式是错误的。
试试这个:
DECLARE @strText VARCHAR(20) = 'B0045';
SELECT SUBSTRING(@strText, PATINDEX('%[1-9]%', @strText), LEN(@strText)) AS result
请参见demo。
如果要更新列:
UPDATE tablename
SET col = SUBSTRING(col, PATINDEX('%[1-9]%', col), LEN(col))
答案 1 :(得分:1)
另一种方式:
DECLARE @strText VARCHAR(20) = 'ABC0045';
SELECT STUFF(@strText,1,PATINDEX('%[1-9]%', @strText)-1,'')