SQL如果字符串中存在某个字符,则取消最后一个字符

时间:2015-05-05 14:06:00

标签: mysql sql sql-server

我的专栏很少有ID

abc_1234
abc_2345
bcd_3456/
cde_4567/

我想要一个新的列,如果它存在,则取消/

abc_1234
abc_2345
bcd_3456
cde_4567

我知道我将使用IF / THEN,LEFTLEN的组合,但我不知道语法。感谢帮助!谢谢!

4 个答案:

答案 0 :(得分:5)

如果您使用的是SQL Server RDBMS

您可以尝试rightleft的以下组合:

case when right(col, 1) = '/' then left(col, len(col)-1) else col end

SQLFiddle

如果您使用的是MySQL RDBMS

trim(trailing '/' from col);

SQLFiddle

答案 1 :(得分:2)

如果你使用SQL Server试试这个

host name and port number

Replace (Transact-SQL)

答案 2 :(得分:0)

您通常只需修剪字符串:

  • Oracle:chart1.ChartAreas["ChartArea1"].CursorX.IsUserEnabled = Enabled; chart1.ChartAreas["ChartArea1"].CursorX.IsUserSelectionEnabled = Enabled;
  • MySQL和PostgreSQL:select rtrim(col, '/') from ...

但并非所有DBMS都提供此功能。例如,SQL Server没有。

答案 3 :(得分:0)

对于SQLServer

declare @tbl table
(
    c1 nvarchar(9)
)
insert into @tbl values ('abc_1234')
insert into @tbl values ('abc_2345')
insert into @tbl values ('abc_3456/')
insert into @tbl values ('abc_4567/')

select  IIF(RIGHT(c1, 1) = '/', LEFT(C1, LEN(C1)-1), C1)
from    @tbl

<强>结果
abc_1234
abc_2345
abc_3456
abc_4567