[SQL ] 新手请教自订变量做编号

楼主: sagwow (不是我)   2019-05-16 18:20:29
数据库名称:SQL Server
数据库版本:SQL Server 2014
内容/问题描述:
最近在练习网络的习题,有一题我拿别人的解答来试,一直跑不过。
假设现在有个资料表T:
Name Score
Jack 10
Amy 70
Gary 50
Danny 30
我想加一栏叫Rank,显示的是他们的成绩排序:
Name Score Rank
Amy 70 1
Gary 50 2
Danny 30 3
Jack 10 4
我想用变量来做,
declare @i int;
set @i = 0;
select *, @i:[email protected]+1 as Rank
from T
order by Score
但是一用到变量就错,我试过@i:[email protected]+1、@[email protected]+1、@i+=1都没办法跑过。
我是用线上的compile网站做练习
https://rextester.com/l/sql_server_online_compiler
不知道为什么别人可以跑过,我就不行,难道是因为这个网站不支援这种写法吗?
能不能在select里面使用变量阿? 请大大们帮忙解惑,感恩!
(我知道这种排序可以不使用变量,不过主要还是想了解变量的使用方法QQ)
作者: konkonchou (卡卡猫)   2019-05-16 21:34:00
可以使用变量, 但指派变量跟查询应该是不能合并的
楼主: sagwow (不是我)   2019-05-17 19:07:00
https://www.jianshu.com/p/476b52ee4f1b我练习的是这里的第16题,他分享的作法是在select里用变量不知道为什么他可以,我却不行,有人能帮忙解答吗QQ
作者: konkonchou (卡卡猫)   2019-05-17 21:07:00
不是他可以,因为他用的是MySQL,MSSQL就用ROW_NUMBER()在这边跑跑看应该OK的, http://sqlfiddle.com/
楼主: sagwow (不是我)   2019-05-21 15:43:00
了解了,感谢各位

Links booklink

Contact Us: admin [ a t ] ucptt.com