如何在SQL Server中删除albhabet和前导零

时间:2016-12-30 11:33:45

标签: sql sql-server tsql

我在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))

但我想要一段能够删除字母并导致零的代码。

任何人都可以帮助我吗?

1 个答案:

答案 0 :(得分:4)

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

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

返回

382486

另一个选择

Select ''+cast(right(@textval,9) as int)