从表中选择所有或仅特定的行

时间:2017-12-15 15:24:01

标签: oracle

是否可以根据条件获取记录,如果条件不满足,则必须显示表中的所有记录。

例如,我有客户ID 1,2,3,4。如果我在where where条件中给出1作为c_id,它必须显示该特定记录。如果我将5作为c_id,它必须显示表中的所有记录。是否可以在单个查询中实现?

以下是我试过的查询。

SELECT case
 WHEN c_id in ('6') then 1          
      else 0
       END as y from customer

1 个答案:

答案 0 :(得分:1)

您可以尝试这样的事情:

select *
from customer
where c_id = 6

union all

select *
from customer
where not exists (
    select null
    from customer
    where c_id = 6
)