我在SQL Server中有代码可以从变量中删除字符

DECLARE @textval NVARCHAR(30)
SET @textval = 'CHA000382486'

SELECT
    LEFT(SUBSTRING(@textval, PATINDEX('%[0-9.-]%', @textval), 8000), PATINDEX('%[^0-9.-]%', SUBSTRING(@textval, PATINDEX('%[0-9.-]%', @textval), 8000) + 'X') -1)

还有不同的代码来删除前导零
DECLARE @textval2 NVARCHAR(30)

SET @textval2 = '000382486'

SELECT
    SUBSTRING(@textval2, PATINDEX('%[^0]%', @textval2+'.'), LEN(@textval2))

但是我想要一个可以删除字母并以零开头的代码。

谁能帮我?

最佳答案

这将找到第一个数字(非零)值

Declare @textval NVARCHAR(30) = 'CHA000382486'
Select Substring(@textval,PatIndex('%[1-9]%',@textval),len(@textval))

退货
382486

另外的选择
Select ''+cast(right(@textval,9) as int)

关于sql - 如何在SQL Server中删除字母和前导零,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/41395602/

10-10 06:49