请教sql decode函数的一个简单用法

执行如下sql:selectvaluefromtablewhereid=1查询出来的值可能大于0也可能小于0。我现在想把小于0的结果全都改成0输入。这个用decode函数... 执行如下sql:
select value from table where id=1

查询出来的值可能大于0也可能小于0。我现在想把小于0的结果全都改成0输入。这个用decode函数怎么做的?

好像是select decode(value...?) from table where id=1
select case when value<=0 then 0 else value end from table where id=1

那如果在一个查询语句中同时查询两个安段的情况应该怎么写呢?

比如:
select a,b from table,对b进行判断
展开
 我来答
小童鞋_成er
推荐于2018-04-13 · 知道合伙人数码行家
小童鞋_成er
知道合伙人数码行家
采纳数:4650 获赞数:22879
主要从事J2EE工作,热爱Java,用心讨论技术,共同进步。

向TA提问 私信TA
展开全部

首先decode函数是Oracle独有的判断函数!

//其实就是一个简单的判断函数,比如字段的值为a
decode(字段,'a','输出是a','是a','输出是b','否则输出都不是');

//下面我拿EMP表的SCOTT来示例代码:
SELECT
    DECODE(ename,'是SCOTT','Yes','不是SCOTT','No','都不是')
FROM emp
    WHERE ename = UPPER('scott');
卫策厍绣
2020-07-01 · TA获得超过3773个赞
知道大有可为答主
回答量:3131
采纳率:33%
帮助的人:250万
展开全部
首先decode函数是Oracle独有的判断函数!
//其实就是一个简单的判断函数,比如字段的值为a
decode(字段,'a','输出是a','是a','输出是b','否则输出都不是');
//下面我拿EMP表的SCOTT来示例代码:
SELECT
DECODE(ename,'是SCOTT','Yes','不是SCOTT','No','都不是')
FROM emp
WHERE ename = UPPER('scott');
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
myiming99
2009-02-25 · TA获得超过129个赞
知道小有建树答主
回答量:263
采纳率:0%
帮助的人:177万
展开全部
select case when 字段<0 then 0 else 字段 end 要显示成的字段名 from table where id=1

sql2000中可以用case这么实现 decode我没用过
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
来自仙寓山能说会道的鲁肃
2009-02-25 · TA获得超过335个赞
知道小有建树答主
回答量:282
采纳率:0%
帮助的人:289万
展开全部
不用这个函数也可以实现:
select case when value<=0 then 0 else value end from table where id=1
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式