Re: [SQL ] Order By的語法
※ 引述《testcrack (testcrack)》之銘言:
: 資料來源是某設備產生的LOG檔(Text檔)
: 因為記錄檔的資料是一直append進來的,所以最新的資料是放在最後面
: 然而資料表中並無序號欄位
: 如果直接Select這個資料表,顯示的順序的確都會跟來源一樣
: 但是若是想要反序顯示,又沒有一個欄位可以來order by
: 所以有什麼方法可以降冪顯示?
假如是MSSQL的話,有個函數叫做ROW_NUMBER可以產生連續編號
使用上類似 ROW_NUMBER() OVER(ORDER BY [Column]
這樣就會針對該Column產生自動且連續的編號
但因您的需求並沒有一個可以排序的欄位,
所以可以隨便指定一個函式給他,只要會產生固定值就好
這樣他就會依照妳直接下SELECT的資料順序排序
再使用CTE進行反向排序即可
T-SQL類似
==============================================================
;WITH t as
(
SELECT *, ROW_NUMBER() OVER (ORDER BY HOST_ID()) as [index]
FROM TableA
)
SELECT * FROM t ORDER BY [index] DESC
==============================================================
為了避免誤解,我在ORDER BY使用HOST_ID()只是因為順手用而已
事實上那個地方隨便放一個會產生固定回傳值的變數或著函數都可以
--
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 111.249.135.130
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 2 之 2 篇):