我是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吗?将逐行或筛选结果? :如果已经在任何地方回答过这个问题,那就非常乐意拥有这个链接。
答案 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'