作者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://www.ptt.cc/bbs/Database/M.1558002034.A.E82.html
→ konkonchou: 可以使用變數, 但指派變數跟查詢應該是不能合併的 05/16 21:34
→ sagwow: 我練習的是這裡的第16題,他分享的作法是在select裡用變數 05/17 19:08
→ sagwow: 不知道為什麼他可以,我卻不行,有人能幫忙解答嗎QQ 05/17 19:08
→ konkonchou: 不是他可以,因為他用的是MySQL,MSSQL就用ROW_NUMBER() 05/17 21:07
→ sagwow: 瞭解了,感謝各位 05/21 15:43