• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

SQL数据排序 (转贴)_sqlserver

sqlserver 搞代码 3年前 (2018-06-17) 90次浏览 已收录 0个评论

–测试表
CREATE TABLE Test(F1 char(10), F2 char(10))

–插入数据
INSERT INTO Test

http://www.gaodaima.com/?p=36286SQL数据排序 (转贴)_sqlserver

SELECT ‘a’ F1, ‘1’ F2
UNION
SELECT ‘b’ F1, ‘2’ F2
UNION
SELECT ‘c’ F1, ‘4’ F2
UNION
SELECT ‘d’ F1, ‘3’ F2
UNION
SELECT ‘e’ F1, ‘4’ F2
UNION
SELECT ‘f’ F1, ‘5’ F2
UNION
SELECT ‘g’ F1, ‘4’ F2
UNION
SELECT ‘h’ F1, ‘7’ F2
UNION
SELECT ‘i’ F1, ‘9’ F2

—排名次
–方法1
SELECT a.*,(SELECT COUNT(*) FROM test b WHERE b.F2>a.F2)+1 AS minci FROM test a ORDER BY minci
–方法2
SELECT id = IDENTITY (int, 0, 1), f1, f2 INTO #t FROM test ORDER BY F2 DESC
SELECT a.f1, a.f2, a.id + 1 – cast(id – cc – minn AS Char(10)) AS [名次]
FROM #t a, (SELECT f2, cc, minn FROM (SELECT f2, COUNT(*) AS cc, MIN(id) – COUNT(*) AS minn FROM #t GROUP BY f2) t) b
WHERE a.f2 = b.f2
ORDER BY a.f2 DESC

–删除表
DROP TABLE #t
DROP TABLE test

欢迎大家阅读《SQL数据排序 (转贴)_sqlserver,跪求各位点评,若觉得好的话请收藏本文,by 搞代码


喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址