首页 > 解决方案 > SSIS - 当字符前面有字母字符时删除字符

问题描述

假设我有从 SSIS 中的 csv 导入的数据,如下所示:

ID,Name,Year,Place
1,"John",1994,"UK"
2,"Bill",1899,"USA"
3,"Gill",1989,"Germ"any"

在这种情况下,有一个错字Germany

我想知道是否有办法(可能在派生列组件中)删除"当文本像_"_

_ 是字母字符或空格。

这个问题接近我所需要的:SSIS - 删除字符 X 除非它后面跟着字符 Y,但它是在 SQL 中完成的,而我的数据是来自 csv 的 SSIS。

标签: sql-serverssis

解决方案


You can do like

CREATE TABLE T
    ([ID] int, [Name] varchar(45), [Year] int, [Place] varchar(45));

INSERT INTO T
    ([ID], [Name], [Year], [Place])
VALUES
    (1, '"John"', 1994, '"UK"'),
    (2, '"Bill"', 1899, '"USA"'),
    (3, '"Gill"', 1989, '"Germ"an"y"');

SELECT ID,
       Name,
       [Year],
       CONCAT('"', REPLACE(Place, '"', ''), '"') Place
FROM T;

Returns:

+----+--------+------+-----------+
| ID |  Name  | Year |   Place   |
+----+--------+------+-----------+
|  1 | "John" | 1994 | "UK"      |
|  2 | "Bill" | 1899 | "USA"     |
|  3 | "Gill" | 1989 | "Germany" |
+----+--------+------+-----------+

Demo


推荐阅读