读书人

关于列运算,该如何解决

发布时间: 2012-01-21 21:31:43 作者: rapoo

关于列运算

SELECT 姓名,语文,数学,isnull(语文,0)+isnull(数学,0) AS 总分
FROM 学生成绩表

我需要在上表基本上再加一列平均分(总分/2)
为什么我这样写有错:
SELECT 姓名,语文,数学,isnull(语文,0)+isnull(数学,0) AS 总分 ,总分/2 AS 平均分
FROM 学生成绩表

提示说“总分 这列不存在。”

难到一定要写成
SELECT 姓名,语文,数学,isnull(语文,0)+isnull(数学,0) AS 总分 ,(isnull(语文,0)+isnull(数学,0))/2 AS 平均分
FROM 学生成绩表

???

[解决办法]
不能这么写。
[解决办法]
--try

select tmp.*, 总分/2 AS 平均分
from
(
SELECT 姓名, 语文, 数学,
isnull(语文,0)+isnull(数学,0) AS 总分
FROM 学生成绩表
)tmp

[解决办法]

SELECT 姓名,语文,数学,isnull(语文,0)+isnull(数学,0) AS 总分,总分/2 AS 平均分 FROM (
SELECT 姓名,语文,数学,isnull(语文,0)+isnull(数学,0) AS 总分 FROM 学生成绩表)
[解决办法]
还是楼主自己的写法比较好一点。

读书人网 >SQL Server

热点推荐