Я пытаюсь выполнить запрос для целей отчета и его поведение таким образом, что я не могу обернуть руку.Если кто-то может помочь мне с этим, по крайней мере, я мог бы спать спокойно
Табличные данные приведены ниже
Table1
-------
account_no|consumer_domain_name|system|search_text|status
AB00001 |XY00001 |Linux | Null |active
AB00002 |XY00002 |Sybase| Null |partial-active
Table2
------
consumer_domain_name|
XY00001 |
XY00002 |
Table3
------
custodian_user_id|consumer_domain_name|
user-test1 |XY00001 |
user-test2 |XY00002 |
SELECT * FROM table1 a INNER JOIN table2 cad ON a.consumer_domain_name =
cad.consumer_domain_name
INNER JOIN table3 c ON c.consumer_domain_name = cad.consumer_domain_name
WHERE
LOWER(a.status) LIKE "%active%"
OR (LOWER(a.search_text) = LOWER("")
OR LOWER(c.custodian_user_id) = LOWER("")
OR LOWER(a.system) = LOWER(""))
Так что у меня проблема в том, чтобы выстроить условия таким образомесли 2-е условие, т. е.
LOWER(a.search_text) = LOWER("")
OR LOWER(c.custodian_user_id) = LOWER("")
OR LOWER(a.system) = LOWER("")
, истинно в любом из операторов,
LOWER(a.search_text) = LOWER("")
OR LOWER(c.custodian_user_id) = LOWER("user-test1")
OR LOWER(a.system) = LOWER("")
должно отображаться
custodian_user_id|account_no|consumer_domain_name|system|status
user-test1 |AB00001 |XY00001 |Linux |active
else
custodian_user_id|account_no|consumer_domain_name|system|status
user-test1 |AB00001 |XY00001 |Linux |active
user-test2 |AB00002 |XY00002 |Sybase|partial-active
У меня есть запрос с несколькими объединениями и несколькими условиями для различных полей.Условия можно разделить на 2 основных условия, которые я хочу проверить .. например, (а) ИЛИ (x или y или z) ... Что я действительно хотел сделать, это если ни одно из условий x, y, z не являетсяtrue, затем выполните условие 'a', иначе запустите 'x или y или z' ... кое-как, как это всегда выполняется, даже если один из x, y, z имеет значение true .... Очень важно, если кто-то может указать мне направильное направление.Спасибо