SQL Server查询删除百分比

Oll*_*kes 1 t-sql sql-server replace percentage

我想知道是否有一种方法可以使用SQL中的替换函数来专门查找百分比?

比如说我有数据:

  • 奥利在1%的时间里都在工作
  • Ollie 2在2%的时间里都在工作
  • Ben的工作时间占2.1%

我不想仅在结果中替换百分比中的其他数字.

我目前有没有办法做到这一点:

UPDATE DataTable SET PersonInfo = replace(PersonInfo, '%', '' );
Run Code Online (Sandbox Code Playgroud)

但我不知道如何选择与百分比相关的数据(数字)......

期望的输出:

  • 奥利正处于当时的工作中
  • 奥利2正处于当时的工作中
  • Ben正处于当时的工作中

Luk*_*zda 5

一些基本的字符串操作

SELECT *,  
      REVERSE(
      STUFF(REVERSE(PersonInfo),
        CHARINDEX('%',REVERSE(PersonInfo) ),
        CHARINDEX(' ', REVERSE(PersonInfo),CHARINDEX('%',REVERSE(PersonInfo))) - 
        CHARINDEX('%',REVERSE(PersonInfo) )+1,
       '')
       )
FROM DataTable
WHERE PersonInfo LIKE '%!%%' ESCAPE '!';
Run Code Online (Sandbox Code Playgroud)

Dbfiddle演示