看板 Database 關於我們 聯絡資訊
資料庫名稱: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
konkonchou: 在這邊跑跑看應該OK的, http://sqlfiddle.com/ 05/17 21:08
sagwow: 瞭解了,感謝各位 05/21 15:43