use*_*966 2 sql sql-server expression ssis etl
我有以下 SQL 代码
update ETL.TempRH
set resourcer = IF(
qualification IN (47,49,50,164,187,252,185,239,251),
"resourcer" , type_Staff);
Run Code Online (Sandbox Code Playgroud)
我需要将其转换为 ssis 表达式。我试过这个,但没有用。
(qualification = 47 ||
qualification = 49 ||
qualification = 50 ||
qualification = 164 ||
qualification = 187 ||
qualification = 252 ||
qualification = 185 ||
qualification = 239 ||
qualification = 251 ? "resourcer" : type_Staff)
Run Code Online (Sandbox Code Playgroud)
您遇到的一个问题是 SSIS 中的相等比较运算符 is ==not =。
更一般地说,这些资格数字会改变吗?它们甚至是模糊的动态吗?
您可能只想使用 Lookup 组件来存储您的资源者资格值,根据它查找资格值,并在匹配时将 type_Staff 列替换为“resourcer”。
因此,例如在您的查找中将查询设置为
SELECT 47 as Qualification, 1 as IsResourcer
union
SELECT 49, 1
etc
etc
Run Code Online (Sandbox Code Playgroud)
加入资格,然后在您的派生列中简单地做
(IsResourcer == 1 ? "Resourcer" : Type_Staff)
Run Code Online (Sandbox Code Playgroud)
如果您不关心保留原始 type_Staff 值,则可以将查找查询更改为
SELECT 47 as Qualification, 'Resourcer' as type_Staff
union
SELECT 49, 'Resourcer'
etc
etc
Run Code Online (Sandbox Code Playgroud)
并设置 type_Staff 以替换您现有的 type_Staff 列。
| 归档时间: |
|
| 查看次数: |
326 次 |
| 最近记录: |