SQL语句的问题(分不多了,不好意思啊)(25分)

  • 主题发起人 主题发起人 峻祁连
  • 开始时间 开始时间

峻祁连

Unregistered / Unconfirmed
GUEST, unregistred user!
我写的SQL如下:

select spdm,spmc,xssr/xspzs as price ,xspzs,xssr from
(select spdm,spmc,xspzs,xssr from tjfx_khxstj where spdm = '1120358' and rq between '2000-01-01' and '2002-04-03' ) derivedtbl

可以执行。但是数据库中有一小部分记录的xspzs为0,所以出现了错误信息:(在SQL SERVER 2000 查询分析器上运行)
==========
(所影响的行数为 61 行)

服务器: 消息 8134,级别 16,状态 1,行 1
遇到被零除错误。
==========

执行结果只能有出错前的部分。

我现在怎样做才能忽略出错的数据记录、针对所有正确的记录执行该语句呢?

谢谢!
 
select spdm,spmc,xssr/xspzs as price ,xspzs,xssr from
改为
select spdm,spmc,
case when xspzs=0 then xssr
else xssr/xspzs
end as price xspzs,xssr from
 
楼上的好像只能保证不出错,但是如果想大道过忽略出错记录的话,还得再费一番功夫哦!
 
是要忽略呀,没看到!
那不是更简单!!!
select spdm,spmc,xssr/xspzs as price ,xspzs,xssr from
(select spdm,spmc,xspzs,xssr from tjfx_khxstj where spdm = '1120358' and xspzs<>0 and rq between '2000-01-01' and '2002-04-03' ) derivedtbl
 
这个问题我已经自行解决了,谢谢各位捧场啊!
 
为表示感谢,加分了,别嫌少啊!礼轻情义重嘛!:)
 

Similar threads

D
回复
0
查看
1K
DelphiTeacher的专栏
D
D
回复
0
查看
875
DelphiTeacher的专栏
D
D
回复
0
查看
1K
DelphiTeacher的专栏
D
S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
后退
顶部