如何从数字中删除字符

时间:2014-12-01 11:24:38

标签: sql sql-server

使用SQL 2008

ID: C/213434343434334, CA/2566121212122

从上面的id,我想只采取数字。如何实现这个

必需的输出

213434343434334, 2566121212122 

需要查询帮助

4 个答案:

答案 0 :(得分:2)

试试这种方式

DECLARE @str VARCHAR(400)
DECLARE @expres  VARCHAR(50) = '%[a-z,/]%'
SET @str = 'CA/2566121212122'
WHILE PATINDEX( @expres, @str ) > 0
SET @str = Replace(REPLACE( @str, SUBSTRING( @str, PATINDEX( @expres, @str ), 1 ),''),'-',' ')

SELECT @str

答案 1 :(得分:1)

 SELECT substring(ID,charindex('/',ID)+1,len (ID)-charindex('/',ID))  New_Id
FROM [YOUR TABLE]

答案 2 :(得分:0)

如果所有字符都在特殊字符'/'前面,您可以使用以下内容:

DECLARE @ID1 nvarchar(200) = 'C/213434343434334', 
        @ID2 nvarchar(200) = 'CA/2566121212122'


SELECT RIGHT(@ID1, CHARINDEX('/', REVERSE(@ID1))-1)
SELECT RIGHT(@ID2, CHARINDEX('/', REVERSE(@ID2))-1)

结果:

RESULT @ID1 : 213434343434334
RESULT @ID2 : 2566121212122

希望这有帮助

答案 3 :(得分:0)

使用SUBSTRING()获取结果。

CREATE TABLE #Test
(
 ID NVARCHAR(MAX) 
)

INSERT INTO #Test
SELECT 'C/213434343434334' UNION
SELECT 'CA/2566121212122'

SELECT SUBSTRING(ID, CHARINDEX('/', ID)+ 1, LEN(ID)) AS ID FROM #Test