此声明有什么问题?T-SQL语句中的“IS NOT NULL”部分无效
SELECT ID, datediff("mi", Start, End) as Total
FROM TimeTable
WHERE Total is not null
我得到一个错误“无效列名”
此声明有什么问题?T-SQL语句中的“IS NOT NULL”部分无效
SELECT ID, datediff("mi", Start, End) as Total
FROM TimeTable
WHERE Total is not null
我得到一个错误“无效列名”
参考表达,而不是别名。
SELECT ID, datediff("mi", Start, [End]) as Total
FROM TimeTable
WHERE datediff("mi", Start, [End]) is not null
编辑,更新,以避免语法错误END
的使用不要使用像“结束”保留字作为表或者列名!使用类似TaskStart/TaskEnd或JobStart/JobEnd或StartDate/EndDate的东西,每次你不必回头在你的表格/列名称周围添加[]时,都会感谢我......
and wrap End in [] – Sk93 2009-08-06 16:16:09
大声笑,这正是我的解析器刚刚说的。 – cmsjr 2009-08-06 16:17:46
在where子句之前,逻辑地处理select子句。在处理select子句之前,别名不可用。 (几乎?)除ORDER BY之外的所有子句都在select子句之前处理。按顺序可以使用别名,因为它是在select子句之后处理的。 – 2009-08-06 19:58:50