oracle 中如何创建一个函数用来判断输入的数字正负零,并且在一个名为count表(num1 number)中查出所有正

我是想重写那个方法。。。... 我是想重写那个方法。。。 展开
 我来答
badkano
2010-11-12 · 知道合伙人体育行家
badkano
知道合伙人体育行家
采纳数:144776 获赞数:885365
团长

向TA提问 私信TA
展开全部
也不用创建啊,有个函数叫sign
用法:
select sign(数值) from dual

大于0返回1,等于0返回0,小于0返回-1

你说的那个
select * from count where sign(num1)=1

得出来的就是为正数的了

---补充--
create or replace FUNCTION NUM(v_num number)
return int is
Result int;
begin
if(v_num < 0) then
Result := -1;
end if;
if(v_num = 0) then
Result := 0;
end if;
if(v_num > 0) then
Result := 1;
end if;
return(Result);

end num;

用法与sign一致
如select num(100) from dual;
kongxianji537
2010-11-11 · TA获得超过661个赞
知道小有建树答主
回答量:218
采纳率:0%
帮助的人:91.2万
展开全部
一、oracle 中专门有一个函数来判断的——sign函数,用法:sign(a),如果a是负数则返回-1;如果是0,返回0;如果是正数,返回1。
二、执行:select * from count a where sign(a.num1) = 1;语句,所查结果即count表中所有num1字段为正的信息。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
wangzhiqing999
2010-11-11 · TA获得超过1.6万个赞
知道大有可为答主
回答量:7048
采纳率:100%
帮助的人:3324万
展开全部
Oracle 自带的函数 SIGN
表达式的正 (+1)、零 (0) 或负 (-1) 号

SQL> SELECT SIGN(-47.3), SIGN(0), SIGN(47.3) FROM dual;

SIGN(-47.3) SIGN(0) SIGN(47.3)
----------- ---------- ----------
-1 0 1
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
flyingFish211
推荐于2018-05-18 · TA获得超过2.1万个赞
知道大有可为答主
回答量:1.5万
采纳率:50%
帮助的人:1.1亿
展开全部
不用创建函数
CASE WHEN digit > 0 THEN '+'
WHEN digit = 0 THEN '0'
ELSE '-' END

SELECT number from num1 WHERE num1 > 0
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式