Например, у меня есть таблица
State | Zip | CategoryID | ProductID
FL |12345| 2 | 3
GA |98765| 1 | 5
GA |98765| 1 | 4
Моя цель - создать запрос, который соответствует состоянию, zip, categoryID и productID.Тем не менее, мой ввод для ProductID категории 2 может быть нулевым или пустой строкой от пользователя, потому что не всегда productID связан с вводом.Если categoryID == 2, это действительно не заботится о конкретном productID.Но если categoryID == 1, он заботится о productID.Есть ли if / else, который я мог бы сделать, если это категория 1, равна ли она вводу или пустой или пустой строке, а категория 2 проверяет идентификатор продукта?Или есть способ, которым я могу превратить оба этих запроса в один?
Если для категории 2 входным значением для productID может быть 3, но оно также может быть нулевым или пустой строкой.Итак, если это ноль, пустая строка или 3. Мне нужно, чтобы он возвращался.
FL |12345| 2 | 3
select * from locationPurch l
where l.state = :state
and l.zip = :zip
and l.category = :category
Если категория 1, ввод для productID всегда будет там.Поэтому, если мы запрашиваем productID 4, он должен вернуть.
GA |98765| 1 | 4
select * from locationPurch l
where l.state = :state
and l.zip = :zip
and l.categoryID = :category
and l.productID = :productID