如何从字符串中删除特定字符

时间:2015-02-04 04:51:58

标签: sql sql-server

使用SQL Server 2008

字符串如:'C/123232323' or '/343434343443' or 'C2323232322'

从字符串中我想删除C和/

尝试查询

选择替换('/ 1233434','C /','')

如果C / both存在,则上述查询有效。 if / only那么替换不起作用。如果C只有那里那么替换不起作用。如何实现两种条件

预期输出

123232323
343434343443
2323232322

需要查询输出

3 个答案:

答案 0 :(得分:2)

您可以通过嵌套replace()来实现此目的:

select replace(replace('C/12341234','/',''),'C','')

可能不是最漂亮但却有效:)

答案 1 :(得分:1)

您可以使用两个嵌套REPLACE

WITH SampleData(string) AS(
    SELECT 'C/123232323' UNION ALL 
    SELECT '/343434343443' UNION ALL 
    SELECT 'C2323232322'
)
SELECT REPLACE(REPLACE(string,'C',''),'/','')
FROM SampleData

答案 2 :(得分:0)

使用Patindex + Substring

DECLARE @str VARCHAR(50)='/343434343443' ---or '/343434343443' or 'C2323232322'
SELECT Substring(@str, Patindex('%[0-9]%', @str), Len(@str))