日期:2014-05-18  浏览次数:20430 次

关于列运算

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 学生成绩表)
------解决方案--------------------
还是楼主自己的写法比较好一点。