记录生活
标签 Tag : 排序

多个字段排序的sql

<Category: SQL Server> 发表评论

sql又生疏了...

CREATE TABLE testsort(
 a VARCHAR,
 b VARCHAR,
 c VARCHAR)
--需要按照b,c排序,按照a来分组,b降序,c升序,每个A组里面取排序后的第一条记录
INSERT INTO testsort VALUES('A','1','2');
INSERT INTO testsort VALUES('A','3','2');
INSERT INTO testsort VALUES('A','3','1');
INSERT INTO testsort VALUES('B','3','2');
INSERT INTO testsort VALUES('B','2','1');
INSERT INTO testsort VALUES('C','1','2');
INSERT INTO testsort VALUES('C','1','4');
 
SELECT * FROM testsort;
 
SELECT   *, IDENTITY(INT,1,1) AS id
 INTO #temp
FROM testsort ORDER BY a,b,c,id
 
SELECT * FROM #temp;
 
SELECT f.a,f.b,f.c FROM ( SELECT a,MAX(id) AS id FROM #temp AS d GROUP BY d.a) AS d   --use minx(id) as you wish
 
LEFT JOIN #temp f ON d.id=f.id

Untitled

SQL的identity函数只有在select into时才可用;
DB2 的自增列函数 ROW_NUMBER() OVER() ;

本文来自: 多个字段排序的sql