[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