早上刚登录上 MSN Messenger ,有人就发过来了一巨复杂的 SQL 语句,暂时将其简化为以下形式吧:
SELECT ….,(Sum(A)+ Sum(B))/2, …
FROM …
GROUP BY …
HAVING …
具体的环境:ASP.NET Web 应用程序,使用 System.Data.OleDb 和 OLE DB Driver for Informix 来连接后台的 Informix 数据库,主要使用 C# 语言编写。
朋友说这个 SQL 语句在 Informix 的 DBAccess 工具(类似于 MS SQL Server 的查询分析器)中执行完全正常,但执行 Web 程序却老报 “非法的 SQL 语句” 错误,经初步检查,发现就是这个“+”有问题,即 SQL 语句中只要有加号,就报这个错误,而使用“-”(减法)就没有问题。
由于没有具体环境,不能测试到底是那个层处理 SQL 语句时出了问题,苦恼中 …
“减法没有问题”?小学数学不是学过: A + B 就等于 A -(0 – B)吗?于是我让朋友把 SQL 语句变成如下形式:
SELECT …., (Sum(A)-(0 – Sum(B)))/2, …
FROM …
GROUP BY …
HAVING …
哈哈,这条语句居然就执行成功了!
虽然还没有最终解决问题(有时间再慢慢试),可不得不服:数学就是有用呀!
晕!
这是初中数学吧,我小学还没学过负数呢
晕了,负负得正,好像是初中学的
你这个到底是什么原因啊?
以前碰到过在jscript中,因为jscript不是强类型的,有时候不得不需要类型转换(比如要按数字值作比较时),字符串转为数字只要num = str – 0;就可以了
啊,是初中数学?
不错不错
恭喜你,小学毕业了 ^_^
‘+’代替’+’就可以了
ms-help://MS.VSCC.2003/MS.MSDNQTR.2003FEB.2052/cpgenref/html/xsdrefsinglecharacterescape.htm
呵呵
现在的小学北师大版四年级就接触负数了,小学学的数学也很丰富的呀
一本数学课外书有80页,明明第一天读了全书的,第二天读了
全书的,哪一天读的 比较多?多多少页?
在等式三角形+ 正方形等于三角形+三角形正 方形,三角形代表一个数字,三角形代,表一个数字