小弟寫了一個簡單的撈MSSQL資料的API
完全照著SQL的順序撈出來
最新的資料都在最後面
想要做一個簡單的排序,把最新的資料放在第一筆(倒序),但不知道怎麼寫SORT
抓SQL的API C# CODE
public class Alarm_EventController : ApiController
{
public object Get() {
using (appapidataEntities entities = new appapidataEntities()) {
var SQLjsonndata = entities.Alarm_Event.ToList();
return new
{
Alarm_Event = SQLjsonndata
};
}
}
想要做一個簡單的排序,把最新的資料放在第一筆(倒序)
EF可以使用LINQ OrderByDescending 系統會幫你轉SQL Order by desc
public class Alarm_EventController : ApiController
{
public object Get() {
using (appapidataEntities entities = new appapidataEntities()) {
var SQLjsonndata = entities.Alarm_Event.OrderByDescending(o=>o.Al_start_Time).ToList();
return new{Alarm_Event = SQLjsonndata};
}
}
}
舉例:
謝謝你的解說及回應!嘗試你的做法成功了!所以這個用法是以SQL的時間來當作ID幫我做排序嗎?
我還有另一個疑問,因為現在SQL有時間欄位可抓,那如果日期+時間欄位是分開的要怎麼辦呢
例如這樣子
呃 那個 Al_start_Time 應該是你當初寫進資料庫的欄位
不是SQL自己產生的吧
(原本想說沒有相關function的話
就把兩個串起來轉成可以排序的timestamp之類的
當然 這還是js的思維XD)
MSSQL應該也有 order by 的 查詢吧
ps.話說留言不能用markdown語法嗎
回應你的標題 - 如何排序JSON資料
我只會js的方法
如果你有前端web的話可以參考
const datas = [
{
time: 99999,
name: 'Jack',
},
{
time: 66666,
name: 'Lily',
},
{
time: 77777,
name: 'Hank',
},
{
time: 88888,
name: 'Alan',
},
{
time: 22222,
name: 'Ryan'
}
];
console.log(datas);
const result = datas.sort((a, b) => {
return a.time > b.time
? 1
: -1;
});
console.log(result);
想要由舊到新的話
將判斷件改為
return a.time < b.time
? 1
: -1;
C#後端可以參考看這個是不是你要的