日期:2014-05-17  浏览次数:20342 次

初学者遇到困难求解
SELECT ispass=case
  when Result.StudentRseult >=60 then 1
  else 0
  END
  FROM Result WHERE ExamDate="2012-01-01" AND SubjectNo

为什么在when Result.StudentRseult >=60 then 1这一句的StudentResult会出现列明无效的错误!


------解决方案--------------------
那说明你那表没那StudentRseult 这个列
------解决方案--------------------
是不是你写错了列名。 
你可以选择直接复制过来。
------解决方案--------------------
你单表查询没必要引用库名,说不定你权限不够反而访问不了。
------解决方案--------------------
SQL code

select * from sys.columns where object_id=object_id('Result')

看看有没有这个字段

------解决方案--------------------
你去掉表名试过没?
------解决方案--------------------
探讨
引用:

那说明你那表没那StudentRseult 这个列

表中有这个列的

------解决方案--------------------
1、试下别的列有没有问题,
2、select * from sys.columns where object_id=object_id('Result' 这个是查找这个表有什么列
------解决方案--------------------
探讨

引用:

你单表查询没必要引用库名,说不定你权限不够反而访问不了。

你说的是when Result.StudentRseult >=60 then 1中的Result吗?去掉过但是还是一样列名无效!

------解决方案--------------------
列名无效,肯定就是列名在你查询的数据库中是不存在的,仔细检查下列名