題:員工表有員工名稱,部門id,和薪水,通過sql求出每個部門最高薪水的員工的名稱
--同一部門可能有兩個或兩個以上員工的薪水一樣且最高.
sqlserver2005中的實現如下:
select 員工名稱,部門id,薪水 from 員工,(select 部門id as departmentid,max(薪水)as max_salary from 員工 group by 部門id) as t
where
員工.部門id=t.departmentid and 員工.薪水=t.max_salary
order by 員工.部門id
***********************************===
在sqlserver2005自帶的資料庫pubs中也有乙個employee表,但是欄位跟上述題目不同,可以這樣假設,找出employee 表中各job_id中job_lvl最高的員工的fname.
--其實現如下:
select fname,[job_id],[job_lvl] as max_job_lvl_in_job_id
from [employee],
(select [job_id] as jobid, max([job_lvl])as mx_lvl from [employee] group by [job_id]) as t
where
[employee].[job_lvl]=t.mx_lvl
and
[employee].[job_id]=t.jobid
order by [employee].[job_id]
********************==
兩個實現的方法是一樣的.由於資料量小,所以沒有考慮效能的問題.
有趣的SQL(如何去掉乙個最高分,乙個最低分)
通過以下sql 可以實現去掉乙個最高分乙個最低分 而且即就是最高 最低分有重複的也可以實現。示例資料 評委 歌手 得分 a1 75a250 a378a 466b1 88b280 b377b 467c1 75c260 c390c 479d1 88d268 d389d 470null null null...
乙個關於SQL語句的練習題目
有這樣乙個表。id name age 1 to 12 2 thow 25 3 rwo 23 4 soa 14 5 flo 20 6 tie 20 7 fm 18 8 soa 20 9 flo 16 10 tie 26 11 soa 23 12 rwo 17 問題1 按名字重排,若名字有重複的,則取年...
Sql中的乙個Patindex函式
charindex 和 patindex 函式都返回指定模式的開始位置。patindex 可使用萬用字元,而 charindex 不可以。這兩個函式都帶有2個引數 1 希望獲取其位置的模式。使用 patindex,模式是可以包含萬用字元的字面字串。使用 charindex,模式是字面字串 不能包含萬...