作者sagwow (不是我)
看板Database
标题[SQL ] 新手请教自订变数做编号
时间Thu May 16 18:20:29 2019
资料库名称: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:=@i+1 as Rank
from T
order by Score
但是一用到变数就错,我试过@i:=@i+1、@i=@i+1、@i+=1都没办法跑过。
我是用线上的compile网站做练习
https://rextester.com/l/sql_server_online_compiler
不知道为什麽别人可以跑过,我就不行,难道是因为这个网站不支援这种写法吗?
能不能在select里面使用变数阿? 请大大们帮忙解惑,感恩!
(我知道这种排序可以不使用变数,不过主要还是想了解变数的使用方法QQ)
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 61.226.219.124
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Database/M.1558002034.A.E82.html
1F:→ konkonchou: 可以使用变数, 但指派变数跟查询应该是不能合并的 05/16 21:34
3F:→ sagwow: 我练习的是这里的第16题,他分享的作法是在select里用变数 05/17 19:08
4F:→ sagwow: 不知道为什麽他可以,我却不行,有人能帮忙解答吗QQ 05/17 19:08
5F:→ konkonchou: 不是他可以,因为他用的是MySQL,MSSQL就用ROW_NUMBER() 05/17 21:07
7F:→ sagwow: 了解了,感谢各位 05/21 15:43