如何为两种不同的条件设置SQL条件优先级
我有两个不同的表' TABLE1 '和' TABLE2 '。 这两个表都有相同的列名 - ' IS_PDF '。
RE TABLE1.IS_PDF值,我使用select语句检索了所需的详细信息,其中我添加了如下所示的where子句。
select * from TABLE1 where TABLE1.IS_PDF = 'Y';
同样,我可以得到TABLE2的值以及TABLE2.IS_PDF ='Y'
现在,我的任务是通过在条件#1下设置优先级 ,让一条select语句从TABLE '和TABLE2两个表中获取详细信息。
我在下面的Select语句中使用,但只在同一时间获得上述条件#1和2。
select * from TABLE1, TABLE2
where
(TABLE1.IS_PDF = 'Y') or (TABLE2.IS_PDF = 'Y' and TABLE1.IS_PDF = 'N' )
请指导相同。 谢谢
你似乎想要这样的东西:
select t1.*
from table1 t1
where t1.is_pdf = 'Y'
union all
select t2.*
from table2 t2
where t2.is_pdf = 'Y' and
not exists (select 1 from table1 t1 where t1.is_pdf = 'Y' and t1.?? = t2.??);
??
表示用于两个表格之间匹配的列。
感谢您及时的回复。
示例代码 -
select TABLE1.IS_PDF, TABLE2.IS_PDF, TABLE1.ID, TABLE1.GLOBAL_ID, TABLE1.title,
from TABLE1, TABLE2
where TABLE1.USER_ID = 82340
and TABLE1.NAME = 'INDIA'
and (TABLE1.IS_PDF = 'Y') or (TABLE2.IS_PDF = 'Y' and TABLE1.IS_PDF = 'N' )
我需要在条件#1下设置优先级。如果条件#1符合,那就没问题。 否则,去#2然后#3。
上一篇: How to set SQL condition precedence for two different conditions