首页 > 解决方案 > 替换 Select 语句上的函数,删除 (-)

问题描述

我在存储过程中有一个查询,试图在该表中插入一些金额:

关键绩效指标 数量
第一的 -
第二 -100
第三 200

我正在尝试清空所有“-”记录,但是当我替换它时,它也会删除数字上的负号。

SELECT
    kpi,
    TO_NUMBER (REPLACE (amount, '-', NULL)),
FROM dual
关键绩效指标 数量
第一的 无效的
第二 100
第三 200

有没有其他想法可以避免这种情况发生并导致这种情况?

关键绩效指标 数量
第一的 无效的
第二 -100
第三 200

谢谢!

标签: sqloracleplsql

解决方案


NULLIF如果这些值匹配某些内容,则可用于替换整个值(而不仅仅是字符串中的字符) 。

SELECT
  KPI,
  NULLIF(amount, '-')  AS amount  -- If the amount is '-' return a NULL instead
FROM
  yourTable

推荐阅读