仅在完整表更新的最后一个字符后保留字符串

时间:2016-11-21 09:49:44

标签: sql-server

我想进行SQL更新并删除之前和之后的任何字符" \"。

我找到了SQL Reverse并查看了来自another question的代码

<select kendo-multi-select
                    k-data-source="vm.filterGroup.groupItems"
                    k-select="vm.onSelect"</select>

SELECT RIGHT(@str, CHARINDEX('.', REVERSE(@str)) - 1)

下面的修改是在SQL表上进行更新的最佳方式:

SELECT RIGHT(@str, CHARINDEX('\', '\' + REVERSE(@str)) - 1)

我应该添加

UPDATE [DB].dbo._tbldata 
SET DOCURL =  RIGHT(DOCURL, CHARINDEX('\',  REVERSE('\' + DOCURL)) - 1)

1 个答案:

答案 0 :(得分:1)

使用CHARINDEXRIGHT

<强>查询

select right(DOCURL, charindex('\', reverse(DOCURL), 1) - 1)
from [your_table_name]
where DOCURL like '%\%';

如果你想更新,那么

<强>查询

update [your_table_name]
set DOCURL = (
   case when DOCURL like '%\%' then right(DOCURL, charindex('\', reverse(DOCURL), 1) - 1)
   else DOCURL END
);