0
SQLのロジックを書き換え:は、以下のいずれかのように、私のストアドプロシージャ内の1つのクエリがありますクエリ
SELECT .....
FROM .....
WHERE .....
AND
(
@date_from IS NULL
OR (ahd.dealid IS NULL OR @date_from >= ahd.dealdf)
)
AND
(
@date_to IS NULL
OR (ahd.dealid IS NULL OR @date_to <= ahd.dealdt)
)
私はこのように書き換えしようとしています:
SELECT .....
FROM .....
WHERE .....
AND
(
(@date_from IS NULL AND @date_to IS NULL)
OR
(ahd.dealid IS NULL)
OR
(
(@date_from IS NOT NULL AND @date_from >= ahd.dealdf)
AND
(ahd.dealid IS NOT NULL AND @date_to <= ahd.dealdt)
)
)
することは正しいが、上のベースということですTRUE/FALSEロジック?単純化して
なぜあなたはそれを書き直していますか?オリジナルのクエリは完全な論理的意味を持ち、従いやすいものでした。たとえ2番目のクエリが論理的に同等であっても、それは私の頭にそれを追うように傷つけます... – Siyual
私はそれに新しい条件を追加する必要があり、元のものを保つことは仕事を複雑にします。 – user3174976
これはあなたに知らせるだけのことではありません。 date_fromを実際の値に、date_toをnullにして、元のクエリが機能するようにすることができます。あなたは残念ながらそうではありません。あなたのものは、文字通り、両方ともnullでなければならないか、または両方が値でなければならないか、またはdealidがnullです。 – Dresden