DTBL_SCHOOL_DATES テーブルから特定の日付に季節範囲を設定しようとしています。以下は、年とその地域に基づいて特定の範囲内で季節を設定する私のロジックです。
リーリーただし、日付がロジックで指定された範囲内にない場合は、日付を無視したいと考えています。別名「範囲外」の値は除外する必要があります。 FTBL_TEST_SCORES.test_admin_period not null を使用しようとしましたが、データベースに null の値がないため、機能しません。
範囲内にない値は結果から除外する必要がありますが、where 句でこれを実現するにはどうすればよいですか
制限のために Alias を使用しようとしましたが、機能しません。 Case when 'a' then field ='B' end
のように、case ステートメントの特定のフィールドに値を割り当てることができるかどうかわかりません。範囲内にない値は結果から除外する必要がありますが、where 句でこれを実現するにはどうすればよいですか
完全なクエリを確認できなければ、最適なソリューションを考え出すことは不可能です。最も簡単な解決策は、条件を
リーリーHAVING
句として追加することです:日付形式について混乱しています。これが MySQL クエリであると想定されている場合は、yyyy-mm-dd 形式である必要があります。おそらく、あいまいなネイティブ日付形式をサポートする SQL Server 上でも、この形式にする必要があります。
なぜすべて
RTRIM
とCAST
なのでしょうか?データは正しい形式で保存し、入力時にサニタイズする必要があります。それが不可能な場合は、クエリごとではなく定期的にデータをサニタイズしてください。シーズン
をクエリ時に定義するのではなく、独自のテーブルに移動することが賢明です。次に、
seasonsに簡単に接続します。ここではサブクエリを使用していますが、理解していただければ幸いです:
リーリー次のように、WHERE 句で CASE ステートメント全体を繰り返すことができます。 リーリー
または、次のようにサブクエリ (または CTE) を使用することもできます:リーリー