从SQL数据库中删除特定值

Lou*_*uis 0 sql sql-server ssis

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

当前专栏

    Column xxx
    Banana
    Apple(3yy)(Rev 1)
    Pear(5zx)(Rev 3)
    orange(9iz)(Minor 5)
    Cow(7iz)(Roaring 5)
Run Code Online (Sandbox Code Playgroud)

期望的专栏

    Column xxx
    Banana
    Apple(3yy)
    Pear(5zx)
    orange(9iz)
    Cow(7iz)
Run Code Online (Sandbox Code Playgroud)

我愿意在SSIS中编写一个包或者做一个SQL脚本来删除括号中的值.任何给出的建议都会受到重视.谢谢

bil*_*nkc 8

SQLFiddle

除非您过度简化了问题,否则无需SSIS包.您只需要一个更新声明.

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;
Run Code Online (Sandbox Code Playgroud)

因此,我的逻辑

  • 反转字符串以找到第一个,这是真正的最后一个括号 (
  • 如果位置为0,则无法完成任何工作.
  • 否则,对于反向字符串,取字符串的最后N个字符(括号后面的所有内容)然后再将其反转以使其按顺序重新排列.