データモデルが正規化されていないようです。あなたは、追加のテーブルを作成することについての提案を考慮する必要があります。
以下は、日付が3つの範囲のいずれかにあるかどうかを確認し、一致率を返す本当に醜いクエリです。
select case
when date '2010-12-05' between range1_from and range1_to then range1_rate
when date '2010-12-05' between range2_from and range2_to then range2_rate
when date '2010-12-05' between range3_from and range3_to then range3_rate
end as rate
from events
where date '2010-12-05' between range1_from and range1_to
or date '2010-12-05' between range2_from and range2_to
or date '2010-12-05' between range3_from and range3_to;
ありがとうございました。 「正規化されていない」とはどういう意味ですか? "date"キーワードは何をしていますか? –
dateキーワードは日付リテラルを指定する方法です。この文字列が日付として扱われることをデータベースに伝えます。 – Ronnis