我不知道爲什麼下面的子查詢不SQL Server中工作,當我在自己獨立運行子查詢早點工作得很好,但我添加如果使用其他SQL Server中的子查詢
Select * from ([subquery]) as table1
查詢不運行,SQL Server返回一個錯誤,說我在關鍵字'if'附近有不正確的語法,這裏存在什麼語法錯誤,以及如何才能正常工作呢?
任何指針?
select * from (
if datepart(MONTH, getdate()) >= MONTH('1/February/0000')
--after february we want the next years semesters,
begin
select top 3 sem_name from semester_dates
where datepart(year, start_date) < datepart(YEAR, getdate()) and sem_name not like 'summer%'
end
else
begin
select top 3 sem_name from semester_dates sd
where datepart(year, start_date) >= datepart(YEAR, getdate()) and sem_name not like 'summer%'
end
) table1
在這樣的查詢中你不能有一個'if',這個代碼在存儲過程中嗎?或者你在哪裏執行它? – Taryn
@bluefeet是的,這是在一個存儲過程...所以我的替代方案是什麼呢? – DaneEdw
你有什麼不是子查詢。儘管如此,你也可以將它轉換爲表值函數。 – BStateham