我知道我不能用Case语句返回多个值,但这是解释我想要完成的任务的最好方法。我正在尝试写一个语句,在其中我将根据在另一个字段中输入的内容返回不同的值。我现在有这样的事情:
SELECT animal WHERE CASE WHEN :textbox is not null THEN (SELECT animal from animalsTablewhere animalType = :textbox ELSE (SELECT
这个查询运行得很好,但是如果我将AND h2.delete_datetime IS NULL条件从WHERE子句移到左侧join的ON子句中,查询将花费很长时间。这让我感到困惑,因为我习惯于在ON子句中添加尽可能多的条件以提高性能( ON子句中的更多条件意味着加入的行更少,需要考虑的行更少)。相反的情况似乎是正确的,我想知道为什么。NULL AND h2.delete_datetime IS NULL
OR