在单个sql查询中选择或选择

时间:2017-07-25 02:36:32

标签: mysql sql

我是sql世界的初学者,希望我能正确地提出问题陈述。 好吧我的问题是如何创建一个互斥的mysql查询,其中结果基于条件。 例如:表格 EMP

----------
id   name
---------
1    tom
2    dik
3    harry
4    mike
5    john

如果要求" john" select应该只给john记录,如果找不到john,则给出所有剩余记录。

我正在努力想象独家经营将如何发挥作用。 我的尝试是:

select case 
when if exists select 1 from emp where emp_name = 'john'
then select emp_name from emp where emp_name = 'john'
else select emp_name from emp
end;
SELECT COALESCE(select emp_name from emp where emp_name = 'john',select emp_name from emp)
select distinct(e.emp_name) from emp e left outer join emp f where e.emp_name = 'john' OR e.emp_name = f.emp_name;

当然,他们都没有工作.. 我的问题  :如何处理此类查询?  :我们可以在sqls中构建if-then吗?将逐行或筛选结果?  :如果已经在任何地方回答过这个问题,那就非常乐意拥有这个链接。

2 个答案:

答案 0 :(得分:0)

这样的事情:

select emp_name
from emp
where emp_name = 'john'
union all
select emp_name
from emp
where not exists (select 1 from emp where emp_name = 'john');

答案 1 :(得分:0)

select e.emp_name
from emp e
left join emp emp_john on emp_john.emp_name='john'
where emp_john.emp_name is null or e.emp_name='john'