sql - 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
解决方案
在关键字之前移动赋值case
并SRC_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))
推荐阅读
- flutter - 在 Flutter Firestore 中的 DocumentSnapshotPlatform 中不存在错误状态字段
- authentication - 有没有办法通过 kafka 代理上的环境变量设置 sasl.enabled.mechanisms?
- asp.net-mvc - 用户从应用程序中随机注销(实施 2FA 后)
- javascript - 使用过滤器和减少JS
- c++ - 它说我需要的分号应该去哪里?
- nginx - NGINX反向代理未加载所有图像主页
- protocol-buffers - 您如何看待可选作为 protobuf 字段名称的前缀?
- python - 如何使用 `requests.Session` 对给定 URL 的请求进行速率限制
- .htaccess - 使用 HTACCESS 重写 URL 以获得多语言支持
- reactjs - React axios 获取返回空数组