Как хорошо известно, мы можем упростить
SELECT * FROM A WHERE X=1 OR X=4 OR X=9
следующим образом:
SELECT * FROM A WHERE X IN (1,4,9)
Возможен ли аналогичный ярлык для «многомерных» условий, как показано ниже:
SELECT * FROM A WHERE (X=1 AND Y=2) OR (X=4 AND Y=3) OR (X=9 AND Y=5)
в форме, напоминающей что-то вроде этой
SELECT * FROM A WHERE [X,Y] IN ( [1,2], [4,3], [9,5] )
?
Я хотел бы считать что угодно упрощением, в котором используются символы O (n), где фактор значительно меньше, чем в наивном примере (то есть добавление еще одного случая приводит к увеличению строки запроса менее чем на OR (X=... AND Y=...)
), хотя, возможно, есть больше постоянных накладных расходов.