請教一個sql語法的問題 |
尚未結案
|
Darkn
一般會員 發表:5 回覆:10 積分:3 註冊:2003-02-12 發送簡訊給我 |
|
Justmade
版主 發表:94 回覆:1934 積分:2030 註冊:2003-03-12 發送簡訊給我 |
|
Darkn
一般會員 發表:5 回覆:10 積分:3 註冊:2003-02-12 發送簡訊給我 |
|
chih
版主 發表:48 回覆:1186 積分:639 註冊:2002-04-02 發送簡訊給我 |
|
Justmade
版主 發表:94 回覆:1934 積分:2030 註冊:2003-03-12 發送簡訊給我 |
|
Darkn
一般會員 發表:5 回覆:10 積分:3 註冊:2003-02-12 發送簡訊給我 |
|
chih
版主 發表:48 回覆:1186 積分:639 註冊:2002-04-02 發送簡訊給我 |
|
Mickey
版主 發表:77 回覆:1882 積分:1390 註冊:2002-12-11 發送簡訊給我 |
|
timhuang
尊榮會員 發表:78 回覆:1815 積分:1608 註冊:2002-07-15 發送簡訊給我 |
應該是很難用一個 sql 辦到的, 試試用 cursor 的方式來處理看看:
set nocount on; Declare @class_id varchar(20) --班級的欄位 create table #tmp_sort ( 姓名 varchar(20), 學號 varchar(10), 班級 varchar(20), 成績 int ) Declare class_cursor Cursor for select distinct 班級 from table1 order by 班級 OPEN class_cursor FETCH NEXT FROM class_cursor INTO @class_id WHILE @@FETCH_STATUS = 0 BEGIN insert into #tmp_sort select top 10 姓名, 學號, 班級, 成績 from table1 where 班級 = @class_id order by 成績 FETCH NEXT FROM class_cursor INTO @class_id END CLOSE class_cursor DEALLOCATE class_cursor select * from #tmp_sort drop table #tmp_sort |
shpeng
初階會員 發表:6 回覆:67 積分:49 註冊:2002-12-21 發送簡訊給我 |
/* --Table 結構表 CREATE TABLE grade (姓名 VARCHAR(20) ,學號 VARCHAR(10) ,班級 VARCHAR(20) ,成績 INT ,名次 INT) CREATE INDEX grade_index ON grade (班級,成績) */ --填入名次 DECLARE @班級 VARCHAR(20) DECLARE @SortID INT UPDATE grade SET 名次=@SortId ,@SortId = (CASE 班級 WHEN @班級 THEN @SortId 1 ELSE 1 END) ,@班級 = 班級 --輸出 SELECT * FROM grade WHERE 名次 <= 3 ORDER BY 班級,名次今天你發現了什麼
------
==取之於斯,用之於斯== |
Darkn
一般會員 發表:5 回覆:10 積分:3 註冊:2003-02-12 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |