ホームページ  >  に質問  >  本文

case when文で指定した値の範囲に収まらないレコードを除外したい - SQL/MySQL

DTBL_SCHOOL_DATES テーブルから特定の日付に季節範囲を設定しようとしています。以下は、年とその地域に基づいて特定の範囲内で季節を設定する私のロジックです。

リーリー

ただし、日付がロジックで指定された範囲内にない場合は、日付を無視したいと考えています。別名「範囲外」の値は除外する必要があります。 FTBL_TEST_SCORES.test_admin_period not null を使用しようとしましたが、データベースに null の値がないため、機能しません。

範囲内にない値は結果から除外する必要がありますが、where 句でこれを実現するにはどうすればよいですか

制限のために Alias を使用しようとしましたが、機能しません。 Case when 'a' then field ='B' end

のように、case ステートメントの特定のフィールドに値を割り当てることができるかどうかわかりません。

範囲内にない値は結果から除外する必要がありますが、where 句でこれを実現するにはどうすればよいですか

P粉428986744P粉428986744404日前557

全員に返信(2)返信します

  • P粉083785014

    P粉0837850142023-09-12 16:42:13

    完全なクエリを確認できなければ、 最適な ソリューションを考え出すことは不可能です。最も簡単な解決策は、条件を HAVING 句として追加することです:

    リーリー

    日付形式について混乱しています。これが MySQL クエリであると想定されている場合は、yyyy-mm-dd 形式である必要があります。おそらく、あいまいなネイティブ日付形式をサポートする SQL Server 上でも、この形式にする必要があります。

    なぜすべて RTRIMCAST なのでしょうか?データは正しい形式で保存し、入力時にサニタイズする必要があります。それが不可能な場合は、クエリごとではなく定期的にデータをサニタイズしてください。

    シーズン をクエリ時に定義するのではなく、独自のテーブルに移動することが賢明です。次に、seasons に簡単に接続します。ここではサブクエリを使用していますが、理解していただければ幸いです: リーリー

    返事
    0
  • P粉718165540

    P粉7181655402023-09-12 13:39:57

    次のように、WHERE 句で CASE ステートメント全体を繰り返すことができます。 リーリー

    または、次のようにサブクエリ (または CTE) を使用することもできます:

    リーリー

    返事
    0
  • キャンセル返事