在MSSQL中,数据排序最基本的就是用ORDER BY子句。比如SELECT * FROM table ORDER BY column ASC; 升序,DESC降序。网友说这招超级实用,新手一看就会。
多列排序技巧
想按多个字段排序?ORDER BY col1 ASC, col2 DESC; 先按col1排序,相同再按col2。网友分享:报表数据这样排最清晰,操作几秒搞定。
自定义排序顺序
有时需要特定顺序,比如把'高' '中' '低'按这个排:ORDER BY CASE WHEN col='高' THEN 1 WHEN col='中' THEN 2 ELSE 3 END; 网友推荐:业务场景常用,简单复制粘贴就行。
NULL值处理
NULL值默认排最后,想放前面?ORDER BY CASE WHEN col IS NULL THEN 0 ELSE 1 END, col; 或者用ISNULL(col,'')。网友经验:数据不全时救命,易上手。
动态排序
用变量控制排序:DECLARE @sort varchar(20)='col1 ASC'; EXEC('SELECT * FROM table ORDER BY '+@sort); 网友说:前端传参超方便,实用性爆表。
分页结合排序
大表分页:SELECT * FROM (SELECT *, ROW_NUMBER() OVER(ORDER BY col) as rn FROM table) t WHERE rn BETWEEN 1 AND 10; 网友热议:性能好,操作简单。
字符串数字混合排序
像'1','2','10'按数字排:ORDER BY LEN(col), col; 网友亲测:文件列表排序神器,一看就懂。
FAQ
Q: ORDER BY能用别名吗?
A: 可以,SELECT col as c FROM table ORDER BY c;
Q: 排序影响性能吗?
A: 大表建议加索引,速度飞起。
Q: 怎么随机排序?
A: ORDER BY NEWID(); 每次不一样。
Q: TOP和ORDER BY一起用?
A: SELECT TOP 10 * FROM table ORDER BY col;