一巨复杂的 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 ...
哈哈,这条语句居然就执行成功了!
没有评论:
发表评论