序列排序
⚠️
该文档可能已过期。
- OrderByCase / ThenByCase:按指定字符串序列排序。
例如,查询地区(Regions)表,将结果按 N / E / W / S 的地区序列排序返回:
| RegionID | RegionDescription |
|---|---|
| 1 | Eastern |
| 2 | Western |
| 3 | Northern |
| 4 | Southern |
var query = sqlite.Regions
.OrderByCase(x => x.RegionDescription, new[]
{
"Northern",
"Eastern",
"Western",
"Southern",
});
var result = query.Select(x => new
{
x.RegionID,
x.RegionDescription,
});执行 SQL:
SELECT *
FROM "Regions" AS "r"
ORDER BY CASE
WHEN "r"."RegionDescription" = 'Northern' THEN 0
ELSE CASE
WHEN "r"."RegionDescription" = 'Eastern' THEN 1
ELSE CASE
WHEN "r"."RegionDescription" = 'Western' THEN 2
ELSE CASE
WHEN "r"."RegionDescription" = 'Southern' THEN 3
ELSE 4
END
END
END
END;运行结果:
| RegionID | RegionDescription |
|---|---|
| 3 | Northern |
| 1 | Eastern |
| 2 | Western |
| 4 | Southern |