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
SQL的identity函数只有在select into时才可用;
DB2 的自增列函数 ROW_NUMBER() OVER() ;
本文来自: 多个字段排序的sql


