甲骨文用'N/A'替换'0'

oracle replace '0' with 'N/A'

我想用 'N/A' 替换 RANDOM 列中等于“0”、NULL、'NONE'、'NA' 的数据。 我使用嵌套替换如下:

SELECT IDNO, 
REPLACE (
    REPLACE (
        REPLACE(
            REPLACE(RANDOM, 'NONE|NA', 'N/A'),
        '0','N/A'),
    '-',''),
NULL, 'N/A') AS NUMBER
FROM TABLE1

它确实用 'N/A' 替换了数据“0”。但是,它确实会替换其中也包含 0 的其他数据。示例:04110 更改为 N/A411N/A

我只想替换恰好值为“0”的那个。

SELECT IDNO, 
REPLACE (
    REPLACE (
        REPLACE(
            REPLACE(RANDOM, 'NONE|NA', 'N/A'),
        '/0','N/A'),
    '-',''),
NULL, 'N/A') AS NUMBER
FROM TABLE1

当我这样做时(在 0 前面添加 \),它不会将任何 0 更改为 'N/A'

然后如何用 'N/A' 替换具有精确值“0”的数据?

提前谢谢你。 :)

提示:检查您的 sql 服务器的 IF 功能。试试这个:

SELECT 
    IDNO,
    IF(Random IS NULL or Random = '0' or Random='NONE' or Random = 'NA', 'N/A', Random) 
FROM
    TABLE1

... RANDOM that equal to '0', NULL, 'NONE', 'NA' WITH 'N/A'

“等于”表示该列中没有其他内容。在这种情况下,使用 CASE:

select idno,
  case when random in ('0', 'NONE', 'NA') or radnom is NULL then 'N/A'
       else random
  end as result
from table1