天天看點

EF null字段排序後置_Sql中Null字段排在後邊

一、Sql中 null字段的排序處理

null字段當做最小值,或者0,參與排序

案例:

sql:

create table NumOne(
ID int identity(1,1),
Num int null,
primary key(ID)
);
go

insert NumOne values(1);
insert NumOne values(10);
insert NumOne values(5);
insert NumOne values(3);
insert NumOne values(null);
insert NumOne values(null);
           

正序排列

select * from NumOne
order by Num;
           
EF null字段排序後置_Sql中Null字段排在後邊

處理null排列

---null 列排序問題整理
---原理,執行兩次排序
select * from NumOne
order by case when Num is null then 1 else 0 end asc,Num asc 
           
EF null字段排序後置_Sql中Null字段排在後邊

二、EF 中處理方式

原理同上

CourseDataContext _context = new CourseDataContext();

//var list = _context.NumOne.OrderBy(q => q.Num).ToList();

//先判斷是否為0,排序,然後根據字段後續排
var list = _context.NumOne
    .OrderBy(q => q.Num == null)
    .ThenBy(q => q.Num)
    .ToList();

foreach (var item in list)
{
    Console.WriteLine($"id:{item.ID},num:{item.Num}");
}
           

更多:

 EF GroupBy多個字段

EF 根據絕對值排序處理

 EF Linq To Sql 常用查詢整理_常用使用方式整理