sql - 替换 Select 语句上的函数,删除 (-)
问题描述
我在存储过程中有一个查询,试图在该表中插入一些金额:
关键绩效指标 | 数量 |
---|---|
第一的 | - |
第二 | -100 |
第三 | 200 |
我正在尝试清空所有“-”记录,但是当我替换它时,它也会删除数字上的负号。
SELECT
kpi,
TO_NUMBER (REPLACE (amount, '-', NULL)),
FROM dual
关键绩效指标 | 数量 |
---|---|
第一的 | 无效的 |
第二 | 100 |
第三 | 200 |
有没有其他想法可以避免这种情况发生并导致这种情况?
关键绩效指标 | 数量 |
---|---|
第一的 | 无效的 |
第二 | -100 |
第三 | 200 |
谢谢!
解决方案
NULLIF
如果这些值匹配某些内容,则可用于替换整个值(而不仅仅是字符串中的字符) 。
SELECT
KPI,
NULLIF(amount, '-') AS amount -- If the amount is '-' return a NULL instead
FROM
yourTable
推荐阅读
- elasticsearch - 处理同一搜索字符串上的精确搜索和部分搜索
- python - 为什么(Kivy)下拉菜单不显示?
- c++ - 使用 cmake 将 boost 链接到 c++:命令行编译
- jpa - entityManager.merge(object) 仅保留列表中的最后一条记录
- android - Android 位图到每个像素转换的字节数组
- sql - 事务日志已满
- php - 使用 Eloquent 插入和更新基于多行的外键的最佳方法是什么?
- biztalk - Biztalk 映射循环
- sql - 每次到店购买超过 3 张不同 CD 的客户数量
- react-native - 使用 Apollo 时如何设置 navigationOptions?