【问题标题】:How to remove the character from the numbers [duplicate]如何从数字中删除字符[重复]
【发布时间】:2015-01-29 09:33:25
【问题描述】:

使用 SQL 2008

ID: C/213434343434334, CA/2566121212122

从上面的 id,我只想取数字。如何做到这一点

需要的输出

213434343434334, 2566121212122 

需要查询帮助

【问题讨论】:

  • 它看起来确实是重复的,但我在该问题中看不到任何关于使用 CLR 的参考,我认为这是最好的解决方案。 This page 包含使用 CLR 的 RegexReplace 示例。

标签: sql sql-server


【解决方案1】:

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

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

希望对你有帮助

【讨论】:

    【解决方案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
    

    【讨论】:

      【解决方案3】:
       SELECT substring(ID,charindex('/',ID)+1,len (ID)-charindex('/',ID))  New_Id
      FROM [YOUR TABLE]
      

      【讨论】:

        【解决方案4】:

        使用 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
        

        【讨论】:

        • 您假设 ID 中始终有 /
        猜你喜欢
        • 2020-08-29
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-04-08
        相关资源
        最近更新 更多