从SQL数据库中删除特定值

从SQL数据库中删除特定值,sql,sql-server,ssis,Sql,Sql Server,Ssis,您好,我目前在SQL表中有此列,我想删除最后一个括号中的所有值 当前列 Column xxx Banana Apple(3yy)(Rev 1) Pear(5zx)(Rev 3) orange(9iz)(Minor 5) Cow(7iz)(Roaring 5) 所需列 Column xxx Banana Apple(3yy) Pear(5zx) orange(9iz) Cow(7iz) 我愿意在SS

您好,我目前在SQL表中有此列,我想删除最后一个括号中的所有值

当前列

    Column xxx
    Banana
    Apple(3yy)(Rev 1)
    Pear(5zx)(Rev 3)
    orange(9iz)(Minor 5)
    Cow(7iz)(Roaring 5)
所需列

    Column xxx
    Banana
    Apple(3yy)
    Pear(5zx)
    orange(9iz)
    Cow(7iz)
我愿意在SSIS中编写一个包或执行SQL脚本来删除括号中的值。如果您能提供任何建议,我们将不胜感激。谢谢

不需要SSIS包,除非您将问题过于简化。update语句就是您所需要的

UPDATE
    S
SET
    Column1 = CASE WHEN CHARINDEX('(', REVERSE(S.Column1)) > 0
        THEN REVERSE(RIGHT(REVERSE(S.Column1), LEN(S.Column1) - CHARINDEX('(', REVERSE(S.Column1))))
        ELSE S.Column1
    END 
FROM
    dbo.Source AS S;
我的逻辑是这样的

  • 反转字符串以找到第一个括号(实际上是最后一个括号)(
  • 如果位置为0,则没有要做的工作
  • 否则,对于反转的字符串,取字符串的最后N个字符(括号后的所有字符),然后再次反转以使其恢复顺序

如果可能的话,我会将表格导出到excel并进行更改,然后将其返回到数据库中。如果您有
香蕉(3yy)
它会减少到
香蕉吗?换句话说,规则是:删除最后一组括号中的所有内容?SQL Server的哪个版本?Billinkc:是的,如果我有香蕉(3yy)它将成为香蕉王:我会要求它是一个常数,因为我必须安排进程查询在我的端和SqlFiddle上不起作用。谢谢你的答案起作用,我复制并粘贴了错误的字段:)Downvoter,你能帮我理解投票结果,以便我可以改进我的答案吗?真的,你能帮我了解一下投票情况吗。它解决了问题,我解释了方法,所以它不仅仅是一个“这个查询修复了它”的答案。