Mysql 在select中使用Case语句
我有一张桌子Mysql 在select中使用Case语句,mysql,database,Mysql,Database,我有一张桌子 id salary 1 100 2 200 3 300 4 400 现在我想找出平均工资,然后与每个人的工资进行比较,然后说“高”或“低” 这是否可以通过案例陈述或请建议我一些好的方法来实现 我的问题是 select xxxxxxxxxx = case when(salary>(select avg(salary)from table_name)) then 'Hig
id salary
1 100
2 200
3 300
4 400
现在我想找出平均工资,然后与每个人的工资进行比较,然后说“高”或“低”
这是否可以通过案例陈述或请建议我一些好的方法来实现
我的问题是
select xxxxxxxxxx =
case
when(salary>(select avg(salary)from table_name))
then 'High'
when(salary<(select avg(salary)from table_name))
then 'low'
end;
但我的问题是我的表中没有xxxxxxxxx列
我是否可以在不添加/指定表中的列来存储值的情况下获取值-“高”或“低”
因此,请给我推荐一个使用案例语句的解决方案。有几种方法可以做到这一点。这里有一个选择:
select id,
case when salary > avgsalary then 'High' else 'Low' end
from yourtable y
join (select avg(salary) avgsalary from yourtable) y2
有几种方法可以做到这一点。这里有一个选择:
select id,
case when salary > avgsalary then 'High' else 'Low' end
from yourtable y
join (select avg(salary) avgsalary from yourtable) y2
有几种方法可以做到这一点。这里有一个选择:
select id,
case when salary > avgsalary then 'High' else 'Low' end
from yourtable y
join (select avg(salary) avgsalary from yourtable) y2
有几种方法可以做到这一点。这里有一个选择:
select id,
case when salary > avgsalary then 'High' else 'Low' end
from yourtable y
join (select avg(salary) avgsalary from yourtable) y2
使用联接:
使用联接:
使用联接:
使用联接:
试试这个:
SELECT A.employee_id,
A.salary,
(CASE WHEN b.ave > A.salary THEN 'LOW'
WHEN b.ave=A.salary THEN 'AVERAGE'
ELSE 'HIGH' END) remarks
FROM oehr_employees A,
(select avg(salary) ave from oehr_employees) b;
试试这个:
SELECT A.employee_id,
A.salary,
(CASE WHEN b.ave > A.salary THEN 'LOW'
WHEN b.ave=A.salary THEN 'AVERAGE'
ELSE 'HIGH' END) remarks
FROM oehr_employees A,
(select avg(salary) ave from oehr_employees) b;
试试这个:
SELECT A.employee_id,
A.salary,
(CASE WHEN b.ave > A.salary THEN 'LOW'
WHEN b.ave=A.salary THEN 'AVERAGE'
ELSE 'HIGH' END) remarks
FROM oehr_employees A,
(select avg(salary) ave from oehr_employees) b;
试试这个:
SELECT A.employee_id,
A.salary,
(CASE WHEN b.ave > A.salary THEN 'LOW'
WHEN b.ave=A.salary THEN 'AVERAGE'
ELSE 'HIGH' END) remarks
FROM oehr_employees A,
(select avg(salary) ave from oehr_employees) b;