当我的where条件返回空输出时显示表的所有记录
EX:
Data:
x,y
1,2
2,3
3,4
select * from table where x=1 ;
output
x,y
1,2
select * from table where x=10 ;
通常它会给我一个空输出而不是它应该在表中显示整个记录。
Output
x,y
1,2
2,3
3,4
在这种情况下,在x数据中不会出现提供的值,因此,它应该显示表
中的所有值答案 0 :(得分:0)
一种方法是:
with t as (
select *
from table
where x = 1
)
select t.*
from t
union all
select t2.*
from table t2
where not exists (select 1 from t);
如果x
是唯一的,则另一种有趣的方法有效:
select t.*
from table t left join
table t2
on t2.x = 1
where (t2.x = 1 and t.x = 1) or (t2.x is null);