oracle数据库中我想将a表中的b列结果为负数的转换成0,或者特定的一个数
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了oracle数据库中我想将a表中的b列结果为负数的转换成0,或者特定的一个数相关的知识,希望对你有一定的参考价值。
oracle数据库中我想将a表中的b列为负数的结果转换成0,或者特定的一个数,如-1
查询检验普通结果表,检验结果这列中的结果有负数就输出0,或者特定的值
不是更改数据库里面的数据,而是在plsql里面提取数据,做成报表
追答那就用decode和sign函数
select decode(sign(b),-1,0(或者是特定的值),b) from a;
sign是要附特定的值,我要把检验普通结果表中检验结果这个字段中结果为负数(并没有固定,而是只要是负数就要转换)的转换成0
追答sign(参数1),如果参数1为正数,返回1;如果参数1为负数,返回-1;如果参数1为0,返回0;
decode(参数1,参数2,参数3,参数4) 意思就是如果参数1等于参数2则参数3,否则参数4。
decode(sign(b),-1,0(或者是特定的值),b)
sign(b)就是参数1
-1就是参数2
0(或者是特定的值)就是参数3
b就是参数4
意思就是如果sign(b)=-1(b为负数),我就显示0或者是特定的值,如果b是正数我就直接现实b。
还有什么疑问
when b<0 then
b = o
eles
b
end追问
语句都不能用的,能写详细点吗
参考技术B CASE WHEN追问decode怎么判断他是负数?
追答没看清
SELECT A.NUMBER,
CASE
WHEN A.Qty < 500 THEN
0
ELSE
A.QTY
END AS QTY
FROM TABLE A
你那个a.number是那个字段?我安装你这个写提示类型不一致因为number实为char
追答你就那个表里面的随便一个字段吧
以上是关于oracle数据库中我想将a表中的b列结果为负数的转换成0,或者特定的一个数的主要内容,如果未能解决你的问题,请参考以下文章