sql >> データベース >  >> RDS >> PostgreSQL

別のデータを検索しようとすると、同じ結果が返されます

    問題は角かっこがないことです:SQLのAND ORよりも優先されます 、したがって、前の式全体を角かっこで囲む必要があります:

    SELECT * FROM dim_date
    WHERE ( -- added bracket
     EXTRACT (MONTH FROM date_cal) BETWEEN 3 AND 5
     OR (EXTRACT (MONTH FROM date_cal) = 2 AND EXTRACT (DAY FROM date_cal) >= 15)
     OR (EXTRACT (MONTH FROM date_cal) = 6 AND EXTRACT (DAY FROM date_cal) <= 21)
     ) -- added bracket
    AND EXTRACT (YEAR FROM date_cal) BETWEEN 2010 AND 2012
    

    角かっこがないと、A or B or (C and D)になります。 、ただし、(A or B or C) and Dが必要です




    1. PHPを使用してmysqlから複数の画像(blob)を表示する方法は?

    2. SQLiteでユリウス日を返す2つの方法

    3. SQLServerの一時テーブルの概要

    4. varchar(max)変数の最大サイズ