T-SQL 語言相較於標准SQL添加了很多特性,為了提高SQL Server的表現,是有必要深入了解的,面試時一般也會包 含這兩個小問題。
首先,是在一個AdventureWorks中Person.Address中隨機返回5行信息,可以如下寫:
SELECT TOP 5 * FROM ( SELECT *,NEWID() as RandomID FROM Person.Address ) t ORDER BY t.RandomID
關鍵在於調用了內置函數NEWID()生成的隨機數,並排序,取前5行。
分頁查詢,需要查詢Person.Address中按城市排序後的第50-200行,當然可以寫一個存儲過程來專門按參數來查詢。
SELECT * FROM ( SELECT *,ROW_NUMBER() OVER (ORDER BY City) as RowNumber FROM Person.Address ) AS t WHERE t.RowNumber BETWEEN 50 AND 200
關鍵是采用了ROW_NUMBER()函數,計算在所有查詢行中當前行是排行第幾,再篩選最後的結果。
總結:用一些語言的特性,雖然綁定了平台,不過,在一個大平台上,就無所謂了,用它還是值得的。
查看本欄目