首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何替换Oracle中的0值?

如何替换Oracle中的0值?
EN

Stack Overflow用户
提问于 2021-05-04 18:58:37
回答 2查看 1.7K关注 0票数 0

我有一个表,我想替换值为零的所有实例。但是,我正在运行的代码也替换了其中包含零的值,例如403 & 4004。它将被替换为43 & 44。有没有一种只替换零值的方法?

这是我的桌子:

代码语言:javascript
复制
id | value
1,    0
2,    0
3,    4004
4,    404

这里是我希望输出的样子:

代码语言:javascript
复制
id | value
1,    -
2,    -
3,    4004
4,    404

这里是我的代码:

代码语言:javascript
复制
select replace(value, '0', '-') as new_value from table1;

我的输出是这样的,这不是我想要的:

代码语言:javascript
复制
id | value
1,    -
2,    -
3,    4--4
4,    4-4

有什么建议吗?

EN

回答 2

Stack Overflow用户

发布于 2021-05-04 18:59:48

使用case表达式:

代码语言:javascript
复制
select t.*,
       (case when value = '0' then '-' else value end)
from t;

这假设value是一个字符串。如果没有,则需要将其转换为:

代码语言:javascript
复制
select t.*,
       (case when value = '0' then '-' else cast(value as varchar2(255)) end)
from t;
票数 0
EN

Stack Overflow用户

发布于 2021-05-04 19:32:32

一个较短的选项使用适合Oracle的DECODE()函数,如

代码语言:javascript
复制
SELECT DECODE(value,0,'-',value)
  FROM tab

其中不需要引用零假定value是一个数字列。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67390615

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档