我想知道是否只能通过一个查询获得以下行为。
使用WHERE
过滤结果,但仅在结果不为空时应用过滤器,例如可选的WHERE
。
例如,考虑到有一个用户表,我想从西班牙检索所有用户,但如果没有,那么我想要所有用户(比如Where不会被应用)。
而不是:
SELECT * FROM users WHERE country = sp
If result empty then
SELECT * FROM users
我想在一个sql语句中执行此行为......是否可能?
答案 0 :(得分:2)
select *
from users
where
country = sp
or not exists (select 1 from users where country = sp)