如何为两种不同的条件设置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两个表中获取详细信息。

  • 如果TABLE1.IS_PDF ='Y' ,则返回匹配相同条件的记录。
  • 如果TABLE1.IS_PDF ='N'TABLE2.IS_PDF ='Y',则返回匹配相同条件的记录。
  • 如果两者都有IS_PDF ='N',则不返回任何内容。
  • 我在下面的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。

  • 如果TABLE1.IS_PDF ='Y',则返回匹配相同条件的记录。
  • 如果TABLE1.IS_PDF ='N'但TABLE2.IS_PDF ='Y',则返回匹配相同条件的记录。
  • 如果两者都有IS_PDF ='N',则不返回任何内容。
  • 链接地址: http://www.djcxy.com/p/71111.html

    上一篇: How to set SQL condition precedence for two different conditions

    下一篇: MySQL select rows where left join is null