2
select 
sc.locationid, --here to get a result
(
   if month(date()) between 8 and 12 then @semTerm = 'S1'
   else @semTerm = 'S2'
   end if
)as @semTerm

from student_class sc
where @semTerm = sc.semester
;

db2 学生管理システムで。読み取り専用アクセス。望ましい結果は、1 月から 6 月までの場合は S2、8 月から 12 月までの場合は S1 です。月が分離され、変数に割り当てられ、student_class テーブルの列と比較される現在の日付スタンプに基づいて変数を設定しようとしています。

ケースステートメントも試してみましたが、運がありませんでした。select ステートメントの上でエラーなしに @semTerm を宣言できません。where句の解決策も調べました。私は左翼手でアウトですか?シンプルに見えますが、構文に苦労しています。Student_class の 1 つの列として locationID を使用する、より大きなステートメントの一部。

4

2 に答える 2