【问题标题】:SQL Query to find and remove characters用于查找和删除字符的 SQL 查询
【发布时间】:2020-09-27 09:31:48
【问题描述】:

我正在使用 SSIS 和 SQL 将数据从平面文件导入到名为 TCVS_tmp_PO_Detail 的 SQL 表中。有时我会在采购订单列中找到一些字符,如果它们出现,我想查找并消除它们。

字符是,所以我可以把数字左边的这3个字符去掉吗?它不会一直发生,因此我可以在我的 SSIS 作业的前端运行它作为查询以在导出之前更正它。

这里是它发生时的样子

Purchase Order
7
7
8
8
8
8
8
8
9
10
10
10
10
11
12
13
11
12
13
14
14
15
15
16
16
17
19
18
19
20
22

【问题讨论】:

  • 那些字符看起来像是错误的编码:UTF-8 文本被视为(扩展)ASCII 或可能存储在 varchar 列(而不是 nvarchar)中。总是在同一行吗?
  • 它总是在同一行,但它只是偶尔出现,比如一周两次。

标签: sql replace ssis trim


【解决方案1】:

我不确定要处理的数据位于何处,但您可以使用 case 表达式轻松完成此操作:

 (case when purchase_order like '%' then stuff(purchase_order, 1, 3, '')
       else purchase_order
  end) as purchase_order

【讨论】:

    【解决方案2】:

    我想你使用“数据流任务”

    1. 添加“派生列”组件
    2. 添加新列
    3. 将此代码添加到表达式中

      REPLACE(Purchase,"","")


    结果:

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-05-05
      • 1970-01-01
      • 2016-05-28
      • 2011-04-18
      • 1970-01-01
      相关资源
      最近更新 更多