經常遇到關於第二大的計算,如找到銷售量第二大的id等等這類問題。拓展
**
select
(select
distinct
salary
from
employee
order
by salary desc
limit 1 offset 1) as secondhighestsalary
;
保證了salary只有唯一的輸出,避免多個第二高的情況。
select
ifnull(
(select
distinct salary
from employee
order
by salary desc
limit 1 offset 1),
null) as secondhighestsalary
解決了為空的問題,為空就輸出null
select
max(salary) as secondhighestsalary
from employee
where salary < (select
max(salary) from employee)
參考
為了方便自己日後參看,將中的內容轉過來。
mysql
select
max(vcid) from msdtb1701
where vcid < (select
max(vcid) from msdtb1701)
或
select
max(vcid) from msdtb1701
where vcid not
in (select
max(vcid) from msdtb1701)
select vcuser ,vcid from msdtb1701
where vcid=
(select
max(vcid) from msdtb1701 where vcid
notin (select
max(vcid) from msdtb1701))
select
max(vcid) from msdtb1701
where vcid < (select
max(vcid) from msdtb1701 where vcid
notin (select
max(vcid) from msdtb1701))
select vcid,vcuser from msdtb1701 order
by vcid desc limit 3
注意:依照此數值調整限制輸出行數
create function getnthhighestsalary(n int) returns int
begin
declare m int;
set m=n-1;
return (
# write your mysql query statement below.
select
distinct salary from employee order
by salary desc limit m, 1
);end
sql server
select top n * from tablename where
oracle
select * from table1 where rownum<=n
第二大整數
問題描述 編寫乙個程式,讀入一組整數 不超過 20個 當使用者輸入 0時,表示輸入結束。然後程式將從這組整數中,把第二大的那個整數找出來,並把它列印出來。說明 1 0表示輸入結束,它本身並不計入這組整數中。2 在這組整數中,既有正數,也可能有負數。3 這組整數的個數不少於2個。輸入格式 輸入只有一行...
第二大的數
這是微軟的一道面試題,是我找工作時看的面試寶典裡面的一題,覺得很有意思,這種處理的方法應該可以用在很多地方。下面就來進入正題吧。題目 寫乙個函式,找出乙個整數陣列中,第二大的數。時間複雜度o n const int minnumber 32767 int ctestsizeofdlg find se...
mysql 讀取第二大的資料
1 desc asc 和limit結合 desc和asc是排序方式,desc 降序 asc 公升序 limit 對輸出的限制,limit m,n m是起始行,n是要輸出的條數 例如 select from table name limit 0,2 輸出從0行開始的兩行資料 select from w...