oracle能实现sqlserver的这个功能吗?sqlserver还是好呀

shuangyu 2003-09-30 02:51:35
select case when companyid>18 then 1 else 2 end from company_list
decode()可以有上面的else 功能
...全文
20 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
pp_hong 2003-10-01
  • 打赏
  • 举报
回复
hehe,当然是oracle好
shuangyu 2003-09-30
  • 打赏
  • 举报
回复
select id,decode(sign(id-249),-1,1,2) from sg order by id desc
我用上面的语句得到的结果是:所有小于249的为1,所有大于等于249的为2
select id,decode(sign(id-249),1,1,2) from sg order by id desc
我用上面的语句得到的结果是:所有大于249的为1,所有小于等于249的为2
select id,decode(sign(id-249),0,1,2) from sg order by id desc
我用上面的语句得到的结果是:所有等于249的为1,其它为2
所以现在想知道小于等于,和大于等于要如何做呢
随便说一下:其实我很喜欢oracle

shuangyu 2003-09-30
  • 打赏
  • 举报
回复
再请教各位高手:
select decode(sign(companyid-18),-1,1,2) from company_list
我这样得到所有小于18的为1,别的为2
但小于等于18要如何做呢,如果把-1改为0就只找出一条了
shuangyu 2003-09-30
  • 打赏
  • 举报
回复
select decode(sign(companyid-18),1,1,2) from company_list
这个好像是指companyid=19的才能为1,不为19的全为2
我要的结果好像是要<19的都为1,>=的全为2
far_ranging 2003-09-30
  • 打赏
  • 举报
回复
呵呵,看来主要还是水平高低的问题.
hdkkk 2003-09-30
  • 打赏
  • 举报
回复
oracle 9i
也可以使用case语句了
LGQDUCKY 2003-09-30
  • 打赏
  • 举报
回复
sorry,
select decode(sign(companyid - 18),1,1,2) from company_list

or
select decode(companyid - 18 + ABS(companyid - 18),0,2,1) from company_list
LGQDUCKY 2003-09-30
  • 打赏
  • 举报
回复
当然有了,
select decode(sign(companyid - 18),0,1,2) from company_list
Lastdrop 2003-09-30
  • 打赏
  • 举报
回复
select decode(sign(companyid-18),1,1,2) from company_list

Oracle也不逊色哦。

17,082

社区成员

发帖
与我相关
我的任务
社区描述
Oracle开发相关技术讨论
社区管理员
  • 开发
  • Lucifer三思而后行
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧