免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 2741 | 回复: 14
打印 上一主题 下一主题

高难度SQL语句,高手请进! [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2003-06-24 21:56 |只看该作者 |倒序浏览
有表A,由4个数值型字段T1、T2、T3、T4组成,记录较多且T1、T2、T3、T4没有关联性都有可能为0,要有SELECT语句实现返回计算值T1/T2,T1/T3,T1/T4,若分母为0则用-1代替计算值,这种SELECT语句该怎么写?是否有函数可判断分母为0?

论坛徽章:
0
2 [报告]
发表于 2003-06-24 22:00 |只看该作者

高难度SQL语句,高手请进!

到oracle版一问应该一下就有答案了

像这个可能要写一个存储过程

论坛徽章:
0
3 [报告]
发表于 2003-06-24 22:50 |只看该作者

高难度SQL语句,高手请进!

好象没有现成的吧。
要不自已create function.要不就用临时表.

论坛徽章:
0
4 [报告]
发表于 2003-06-25 01:23 |只看该作者

高难度SQL语句,高手请进!

SQL>; select i,j,i/(decode(j,0,-1*i,j))  from test_d;

         I          J I/(DECODE(J,0,-1*I,J))
---------- ---------- ----------------------
         2          0                     -1
         1          4                    .25
         0          3                      0

论坛徽章:
0
5 [报告]
发表于 2003-06-25 01:53 |只看该作者

高难度SQL语句,高手请进!

什么数据库?我的返回:
ERROR:  Function decode(integer, integer, integer, integer) does not exist
        Unable to identify a function that satisfies the given argument types
        You may need to add explicit typecasts

论坛徽章:
0
6 [报告]
发表于 2003-06-25 09:06 |只看该作者

高难度SQL语句,高手请进!

在Oracle上decode肯定可以。

论坛徽章:
0
7 [报告]
发表于 2003-06-25 11:14 |只看该作者

高难度SQL语句,高手请进!

oracle用decode,sql server用case

论坛徽章:
1
荣誉版主
日期:2011-11-23 16:44:17
8 [报告]
发表于 2003-06-25 11:42 |只看该作者

高难度SQL语句,高手请进!

除法大多数数据库支持。
但是若分母为0则用-1代替计算值这个估计不一定支持。我考虑,可能还得借助于其它手段。

论坛徽章:
1
2015年辞旧岁徽章
日期:2015-03-03 16:54:15
9 [报告]
发表于 2003-06-25 12:39 |只看该作者

高难度SQL语句,高手请进!

  1. select t1/(case when t2=0 then 1 else t2 end) as "t1/t2",
  2.           t1/(case when t3=0 then 1 else t3 end) as "t1/t3",
  3.           t1/(case when t4=0 then 1 else t4 end) as "t1/t4"
  4.        from A
复制代码

就好了.

论坛徽章:
0
10 [报告]
发表于 2003-06-25 13:02 |只看该作者

高难度SQL语句,高手请进!

原帖由 "蓝色键盘" 发表:
除法大多数数据库支持。
但是若分母为0则用-1代替计算值这个估计不一定支持。我考虑,可能还得借助于其它手段。
   

如楼上如说
oracle用decode实现
ms sql用case可以实现。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP