求表达式处理算法,进者有分

Efeis 2004-03-31 08:51:38
给出一SQL查询的查询表达式,例如查询:
  SELECT Field1+Field2/Field3 FROM Table1
  中的 Field1+Field2/Field3
为了避免零除错误,必须对表达式进行处理成:
  Field1+(CASE Field3 WHEN 0 THEN NULL ELSE Field2/Field3 END)
请教定界Field2/Field3和Field3的算法和变换算法,注意Field2和Field3都可能也是一个表达式,如Field3=(Field4-Field5)
...全文
44 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
Efeis 2004-04-02
  • 打赏
  • 举报
回复
各位,能不能给个变换程序例子啊,应该不是很大的程序吧,
拜托...
leobearcn 2004-03-31
  • 打赏
  • 举报
回复
SELECT Field1+Field2/field3 FROM Table1 where field3 in (select field3 form table1 where field3 is not null)
spy147 2004-03-31
  • 打赏
  • 举报
回复
你最好用ISNULL函数:
Field1+Field2/Isnull( Field3,Null)

绝对更好
hhzqf1980 2004-03-31
  • 打赏
  • 举报
回复
你最好用ISNULL函数:
Field1+Field2/Isnull( Field3,Null)
zhang_yzy 2004-03-31
  • 打赏
  • 举报
回复
关注
shockjoy 2004-03-31
  • 打赏
  • 举报
回复
upup
lywho 2004-03-31
  • 打赏
  • 举报
回复
up
leeky 2004-03-31
  • 打赏
  • 举报
回复
我的计算机上有两个,但我在网吧。
看这个:
http://www.mypcera.com/softxue/new/delphi/dpi32.htm
zhang_yzy 2004-03-31
  • 打赏
  • 举报
回复
那样是否对你的处理有些帮助那

----------------------------------------
我是新手,请多关照
zhang_yzy 2004-03-31
  • 打赏
  • 举报
回复
为了避免零除错误,必须对表达式进行处理成:
  Field1+(CASE Field3 WHEN 0 THEN NULL ELSE Field2/Field3 END)

我在SQL测试时,发现 5/null =null
你的表达式改成
Field1+Field2/Isnull( Field3,Null)也可实现你的处理过程。
azsoft 2004-03-31
  • 打赏
  • 举报
回复
isnull()
zhang_yzy 2004-03-31
  • 打赏
  • 举报
回复
UP
zhuangjunx 2004-03-31
  • 打赏
  • 举报
回复
学习
AndaAnda 2004-03-31
  • 打赏
  • 举报
回复
up
Efeis 2004-03-31
  • 打赏
  • 举报
回复
zhang_yzy(六子儿)的:
你的表达式改成
Field1+Field2/Isnull( Field3,Null)也可实现你的处理过程。

想法不错!我考虑考虑。但还是要修改表达式,我还是要算法

leobearcn(七月流火) 的:
SELECT Field1+Field2/field3 FROM Table1 where field3 in (select field3 form table1 where field3 is not null)

也很妙!

5,930

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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