首页 > 解决方案 > UPDATE 语句中的 SQL 案例表达式

问题描述

我正在尝试映射这个特定的 SQL 代码以用于数据仓库。

我有两列 (TARGET) 和 (NET_SALARY),目的是在 TARGET 为 700 时将 NET_SALARY 映射为 0,在其他情况下为子字符串净薪水 1、30

我收到缺少右括号的错误

两列都是 varchar2 数据类型

CASE 
  WHEN SRC_CUSTOMER.TARGET = '700' THEN SRC_CUSTOMER.NET_SALARY = '0'
  ELSE SUBSTR(SRC_CUSTOMER.NET_SALARY,1,30)
END

标签: sqloraclesql-updatecaseoracle-data-integrator

解决方案


在关键字之前移动赋值caseSRC_CUSTOMER.TARGET作为内部表达式:

SRC_CUSTOMER.NET_SALARY = 
CASE SRC_CUSTOMER.TARGET
WHEN '700' THEN '0'
ELSE SUBSTR(SRC_CUSTOMER.NET_SALARY,1,30)
END

可以用解码函数重写:

SRC_CUSTOMER.NET_SALARY = decode(SRC_CUSTOMER.TARGET,'700','0',SUBSTR(SRC_CUSTOMER.NET_SALARY,1,30))


推荐阅读