星期三, 五月 12, 2004

小学数学还是有用的.

一巨复杂的 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 ...

哈哈,这条语句居然就执行成功了!

没有评论: