本文共 642 字,大约阅读时间需要 2 分钟。
刚刚看到一篇博客,原帖链接:
通常想到子查询或者临时表外加聚合函数都是没错的,但是真写起来发现SQL语句比较不那么人道,阅读体验不好。追求优雅的Coder通常一看到是SQL Server 2005+,条件反射地想到和公用表表达式CTE。一种SQL查询实现如下:
1 2 3 4 5 6 7 8 9 10 11 | WITH ScoreInfo AS ( SELECT [Student_No], [Student_Name],[Chinese],[Math],[English],[totalScore] ,DENSE_RANK() OVER( ORDER BY totalScore DESC ) AS '名次' FROM [Record] ) SELECT CASE 名次 WHEN 1 THEN '第一名' WHEN 2 THEN '第二名' WHEN 3 THEN '第三名' END AS '排名' , [Student_No], [Student_Name],[Chinese],[Math],[English],[totalScore] FROM ScoreInfo WHERE 名次<4 --取前三名 |
这样的SQL可读性是不是立刻变得简洁鲜明一目了然?
本文转自JeffWong博客园博客,原文链接:http://www.cnblogs.com/jeffwongishandsome/archive/2012/11/07/2759485.html,如需转载请自行联系原作者