读书人

对表开展查询排序主要是排序

发布时间: 2013-11-20 12:46:02 作者: rapoo

对表进行查询排序,主要是排序
表:tab
ID Name ShuLiang
1 a 5
2 b 1
3 a -1
4 c 5


查询结果要分为两类,数量为正数的排在上面,每一类还要按照ID顺序排列,比如:
ID Name ShuLiang
1 a 5
2 b 1
4 c 5
3 a -1
[解决办法]
"数量为正的放在上面” ---------大于0为一类,小于0为一类,为了直观假设大于0为1,小于0为-1,大的放前面,降序排列
“每一类再按ID排序” ---------ID为排序次关键字,放在后面
代码如下:

CREATE TABLE tab(ID int,name varchar(10),ShuLiang int)
GO

INSERT INTO tab
SELECT 1,'a',5 UNION ALL
SELECT 2,'b',1 UNION all
SELECT 3,'a',-1 UNION all
SELECT 4,'c',5
GO

SELECT * FROM tab
ORDER BY (CASE WHEN ShuLiang > 0 THEN 1 ELSE -1 END) DESC,ID

读书人网 >SQL Server

热点推荐