派生列FindString错误

时间:2014-03-10 17:06:16

标签: sql sql-server ssis derived

我有一个数据集如下

S.No Column_A                         Column_B

1    San Diego Sewage Department      Hello
2    California Sewage Plant          Hi
3    Paulo Alto Sewage                YOLO

现在我需要找到并更换污水处理部门,污水处理厂,污水处理厂。

所以最终结果应该是

S.No Column_A                         Column_B

1    San Diego SD                     Hello
2    California SD                    Hi
3    Paulo Alto SD                    YOLO

我尝试在派生列中写这样的内容,但并非所有内容都被转换

FINDSTRING(Column_A,"Sewage%",1)>0 ? REPLACE(Column_A,"Sewage%","") + "SD" : Column_A

2 个答案:

答案 0 :(得分:2)

我认为问题在于您在函数中使用SQL通配符,据我所知他们不接受通配符。

我认为以下内容是等效的:

FINDSTRING(Column_A,"Sewage",1) > 0 ? 
    SUBSTRING(Column_A, 1, FINDSTRING(Column_A,"Sewage",1) - 1) + "SD" : 
    Column_A

答案 1 :(得分:0)

如何运行以下三个查询。你必须确保最后一个是最后一次运行:

UPDATE MyTable
SET column_A = REPLACE(column_A, 'Sewage Department', 'SD')

UPDATE MyTable
SET column_A = REPLACE(column_A, 'Sewage Plant', 'SD')

UPDATE MyTable
SET column_A = REPLACE(column_A, 'Sewage', 'SD')