先排序然後只取出奇數的內容

2021-10-07 02:04:24 字數 1616 閱讀 2698

對於employees表中,輸出first_name排名(按first_name公升序排序)為奇數的first_name

create

table

`employees`

(`emp_no`

int(11)

notnull

,`birth_date`

date

notnull

,`first_name`

varchar(14

)not

null

,`last_name`

varchar(16

)not

null

,`gender`

char(1

)not

null

,`hire_date`

date

notnull

,primary

key(

`emp_no`))

;

如,輸入為:

insert

into employees values

(10001

,'1953-09-02'

,'georgi'

,'facello'

,'m'

,'1986-06-26');

insert

into employees values

(10002

,'1964-06-02'

,'bezalel'

,'simmel'

,'f'

,'1985-11-21');

insert

into employees values

(10005

,'1955-01-21'

,'kyoichi'

,'maliniak'

,'m'

,'1989-09-12');

insert

into employees values

(10006

,'1953-04-20'

,'anneke'

,'preusig'

,'f'

,'1989-06-02'

);

輸出格式:

georgi

anneke

因為georgi按first_name排名為3,anneke按first_name排名為1,所以會輸出這2個

思路:先排出號碼    然後再去奇數

1.利用count函式 排號

select

count(*

)from employees e2 where e1.first_name>=e2.first_name

2.然後取奇數

select e1.first_name from employees e1

where

(select

count(*

)from employees e2 where e1.first_name>=e2.first_name)%2

=1;

先排序還是先取值

題目 ms sqlserver和oracle中取出表中按照某欄位排序的前n條記錄 這個題目看上去似乎那麼簡單 兩種資料庫都提供 order by 子句.問題應該能夠迎刃而解吧 先試一下 ms sqlserver 是怎麼做的 use northwind create table testsort id...

先排序還是先取值

先排序還是先取值 題目 mssqlserver和oracle中取出表中按照某欄位排序的前n條記錄 這個題目看上去似乎那麼簡單,兩種都提供orderby子句.問題應該能夠迎刃而解吧.先試一下mssqlserver是怎麼做的 usenorthwind createtabletestsort idinte...

oracle先排序再分頁

oracle排序分頁查詢和mysql資料庫的語句還不一樣,這裡做簡單的記錄。select a.rownum rn from select from v log a order by operatetime desc結果 可以發現,按時間排序了,但是rownum並不是從小到大,因為oracle是先生成...