[SQL ] 新手請教自訂變數做編號

看板Database (資料庫)作者 (不是我)時間5年前 (2019/05/16 18:20), 編輯推噓0(007)
留言7則, 2人參與, 5年前最新討論串1/1
資料庫名稱: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

05/16 21:34, 5年前 , 1F
可以使用變數, 但指派變數跟查詢應該是不能合併的
05/16 21:34, 1F

05/17 19:07, 5年前 , 2F

05/17 19:08, 5年前 , 3F
我練習的是這裡的第16題,他分享的作法是在select裡用變數
05/17 19:08, 3F

05/17 19:08, 5年前 , 4F
不知道為什麼他可以,我卻不行,有人能幫忙解答嗎QQ
05/17 19:08, 4F

05/17 21:07, 5年前 , 5F
不是他可以,因為他用的是MySQL,MSSQL就用ROW_NUMBER()
05/17 21:07, 5F

05/17 21:08, 5年前 , 6F
在這邊跑跑看應該OK的, http://sqlfiddle.com/
05/17 21:08, 6F

05/21 15:43, 5年前 , 7F
瞭解了,感謝各位
05/21 15:43, 7F
文章代碼(AID): #1StJbow2 (Database)
文章代碼(AID): #1StJbow2 (Database)