CREATE
TABLE
tb(
Name
varchar
(10),Score
decimal
(10,2))
INSERT
tb
SELECT
'aa'
,99
UNION
ALL
SELECT
'bb'
,56
UNION
ALL
SELECT
'cc'
,56
UNION
ALL
SELECT
'dd'
,77
UNION
ALL
SELECT
'ee'
,78
UNION
ALL
SELECT
'ff'
,76
UNION
ALL
SELECT
'gg'
,78
UNION
ALL
SELECT
'ff'
,50
GO
--1. 名次生成方式1,Score重复时合并名次
SELECT
*,Place=(
SELECT
COUNT
(
DISTINCT
Score)
FROM
tb
WHERE
Score>=a.Score)
FROM
tb a
ORDER
BY
Place
/*
--结果
Name
Score Place
---------------- ----------------- -----------
aa 99.00 1
ee 78.00 2
gg 78.00 2
dd 77.00 3
ff 76.00 4
bb 56.00 5
cc 56.00 5
ff 50.00 6
SELECT
COUNT
(
DISTINCT
Score)
FROM
tb
WHERE
Score>=a.Score)
这句语句 有谁能帮帮我吗SMILET
Smart猫小萌
万千封印
相关分类