此聲明有什麼問題?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