程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> SqlServer數據庫 >> 關於SqlServer >> 經典查詢排序案例

經典查詢排序案例

編輯:關於SqlServer

1。我有一張數據表,結構如下:
create Table List
(
name CHAR(20),
local CHAR(20),
age CHAR(20)
)

我想要返回的結果集格式為:
按地區排序,但是地區按枚舉輸出,
每個地區顯示一條記錄,按地區循環顯示,下面只列出了3個地方作例子。
(各地區人數不定也不等,如果該地方沒有人可以填充了,就跳過去不顯示)
如:
name local age
張三 河北 10
李四 河南 20
王五 山東 18

馬六 河北 16
劉七 河南 22
趙八 山東 25
. . .
. . .
. . .
Select Name,Local,Age,
XH=(Select Count(*) from List A where A.Local=B.Local and A.Name<B.Name)
from List B order by XH,Local

2。人員名稱 外出時間 外出趟次
張三 2000-01-01 10:01:01
張三 2000-01-01 13:01:01
張三 2000-01-01 12:01:01
張三 2000-01-02 09:01:01
張三 2000-01-02 15:01:01
張三 2000-01-02 16:01:01
李四 2000-01-01 10:01:01
李四 2000-01-01 11:01:01

目標要求:
人員名稱 外出時間 外出趟次 //記錄某人在某天的第幾次外出
張三 2000-01-01 10:01:01 1
張三 2000-01-01 13:01:01 3
張三 2000-01-01 12:01:01 2
張三 2000-01-02 09:01:01 1
張三 2000-01-02 15:01:01 2
張三 2000-01-02 16:01:01 3
李四 2000-01-01 10:01:01 1
李四 2000-01-01 11:01:01 2

select a.name,a.dt,(select count(name) from tablename
where name=a.name and year(dt)=year(a.dt) and month(a.dt) and day(dt)=day(a.dt) and dt<=a.dt) as ncount
from tablename a
order by a.dt

3.ID 名稱
1 B
2 A
3 C
4 B
5 A
6 B
其中ID是主鍵,現在希望通過SQL查詢得到以下結果
ID 名稱 次數
1 B 1
2 A 1
3 C 1
4 B 2
5 A 2
6 B 3
其中"次數"是指以ID為順序,名稱是第幾次出現。
望高手相助,200分相贈!
Select id,名稱,
(select count(id) from table1 where 名稱=AAA.名稱 and id<=AAA.id) as 次數
From table1 AAA

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved