次のサブクエリがSQLServerで機能しない理由はわかりません。サブクエリを単独で実行すると、問題なく機能しますが、追加するとすぐに機能します。
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