我正在构建的查询/视图有问题。
表结构:
- 模板 ID(整数,主要)
- 属性名称(Varchar,主要)
- x1(智力)
- x2(智力)
- 对齐方式(枚举[左,右])
- 位置(枚举[顶部,底部])
- 偏移量(整数)
我想创建一个按以下顺序显示结果的视图:
- 第一次排序,按 templateId ASC。
- 二次排序,如果 Position=Top,则按 Offset ASC,否则如果 Position=Bottom,则按 Offset DESC。
我该如何创建它,尤其是考虑到第二次排序。
问候。
我正在构建的查询/视图有问题。
表结构:
我想创建一个按以下顺序显示结果的视图:
我该如何创建它,尤其是考虑到第二次排序。
问候。
ORDER BY templateid ASC, IF(Position = 'top', offset, -offset) ASC
ORDER BY templateId ASC,
CASE Position WHEN 'Top' THEN 1 WHEN 'Bottom' THEN 2 END ASC,
CASE Position WHEN 'Top' THEN Offset ELSE NULL END ASC,
CASE Position WHEN 'Bottom' THEN Offset ELSE NULL END DESC
请注意,您还应该能够使用以下内容,因为“Top”的索引小于“Bottom”:
ORDER BY templateId ASC,
Position ASC,
CASE Position WHEN 'Top' THEN Offset ELSE NULL END ASC,
CASE Position WHEN 'Bottom' THEN Offset ELSE NULL END DESC