从字符串sql中删除特殊字符

时间:2016-05-10 05:50:00

标签: sql sql-server

我的表中的列包含这样的数据。

SQL 2008

97W
125/ 122Q
121/ 118Q
121/ 118S
123/ 120S
112H
111H

我试图在/之前删除数据,因此输出看起来像

97W
122Q
118Q
118S
120S
112H
111H

任何人都可以分享经验,如果碰到这种情况我该如何实现。

谢谢,

3 个答案:

答案 0 :(得分:2)

试试这个:

SELECT LTRIM(RIGHT(mycol, LEN(mycol) - CHARINDEX('/', mycol)))
FROM mytable

Demo here

答案 1 :(得分:1)

看看这个

Select LTRIM(SUBSTRING(col, CHARINDEX('/', col) + 1, LEN(col)))
from table

答案 2 :(得分:0)

使用CASE表达式检查字符串是否包含/,如果是,请使用CHARINDEX查找/的索引并获取正确的部分。否则就是字符串。

<强>查询

SELECT 
    CASE WHEN your_column_name LIKE '%/%' 
    THEN LTRIM(RIGHT(your_column_name, CHARINDEX('/', REVERSE(your_column_name), 1) - 1)) 
    ELSE your_column_name END AS new_string
FROM your_table_name;

SQL Fiddle Demo