数据库:
优先级列名为Index,
用户在Web表单不设定优先级时,Index就存-1
需求:
显示数据时需要按优先级从小到大排,负数放在末尾。
sql实现:
order by sign([Index]) desc,abs([Index])
C# EF实现:
OrderByDescending(x =>Math.Sign(x.Index)).ThenBy(x=>Math.Abs(x.Index));
sign(Index),当Index为正数则返回1,当Index为负数则返回-1,当Index为0则返回0,
abs(Index),返回Index绝对值 |x|。