我下面有一桌员工:
+-------------+---------+------------------+
| employee_id | phone | dept |
+-------------+---------+------------------+
| 1 | 7738474 | marketing |
| 2 | [null] | marketing |
| 3 | 9938475 | customer service |
| 4 | 4233474 | customer service |
| 5 | 1738477 | marketing |
| 6 | [null] | marketing |
| 7 | [null] | customer service |
+-------------+---------+------------------+
我想如果市场部有空的电话价值,他们不会显示,如果客户服务部,他们显示所有的价值,甚至电话是空的
+-------------+---------+------------------+
| employee_id | phone | dept |
+-------------+---------+------------------+
| 1 | 7738474 | marketing |
| 3 | 9938475 | customer service |
| 4 | 4233474 | customer service |
| 5 | 1738477 | marketing |
| 7 | [null] | customer service |
+-------------+---------+------------------+
任何不使用联合的可能查询?
select * from employee where dept ='customer service'
union ALL
select * from employee where dept = 'marketing' and phone is not null
这听起来比较简单的过滤:
select *
from employee e
where dept = 'customer service' or
(dept = 'marketing' and phone is not null)