① oracle資料庫。查詢部門平均工資,平且顯示工資等級,按部門分組,sql語句怎麼寫
如果是scott下的那幾張表的話
selectt1.deptno,
t1.dname,
t1.avgsal,
max(case
whent1.avgsalbetweent2.losalandt2.hisalthen
t2.grade
end)grade
from(selecta.deptno,b.dname,round(avg(a.sal),2)avgsal
fromempa,deptb
wherea.deptno=b.deptno
groupbya.deptno,b.dname)t1,
salgradet2
groupbyt1.deptno,t1.dname,t1.avgsal
orderbyt1.deptno;
查詢結果
② 用SQL SERVER查詢教師平均工資,如果平均工資大於5000元,則顯示「收入水平較高」,否則顯示「收入
if((select avg(工資) from 教師信息表)>5000 )
begin
(select '收入水平較高')
end
else
begin
(select '收入水平較低')
end
③ sql語句求出第三到第五的工資
sql查詢員工的基本工資排名第3-5位的姓名和基本工資,select top 4 姓名,工資 from 表a where 姓名 not in (select top 2 姓名 from 表a order by 工資 desc) order by 工資 desc
查工資的方法:
1、select * from 部門
2、where not exists (select * from 員工 where 員工.部門號=部門.部門號 and 工資 <= 5000)
④ 用SQL語句怎麼查詢最高工資和最低工資的人
1、首先查出最低工資和最高工資,要考慮到並列最高和最低的情況
2、使用最高工資和最低工資作為條件關聯工資表,獲得人的ID
3、使用人的ID關聯用戶表,查出人的信息
⑤ SQL第2高的薪水
你可以展開來看,這樣容易理解,我將你子查詢等價展開
其實那個子查詢查出來的結果就是這樣,因為你條件是E2表大於E1表的工資,所以只看右邊那兩條數據。然後數字1就代表條數,意思就是在這個查詢中找一條記錄符合的。那就是200了,因為100 是有2條記錄。所以這樣就找到第二大的。同理你可以把1換成2,那結果就是100。再換成0,那結果就是300,因為300不在這里
⑥ sql查詢員工的基本工資排名第3-6位的姓名和基本工資
sql查詢員工的基本工資排名第3-6位的姓名和基本工資
select top 4 姓名,工資 from 表a where 姓名 not in (select top 2 姓名 from 表a order by 工資 desc) order by 工資 desc