我有一个类别表,其中我使用了一个字段显示顺序。但问题是默认情况下该字段中的值为零。所以现在假设我在两个记录中设置了显示顺序1和2,那么对于所有其他记录,显示顺序中将显示零值。
现在,如果我按照显示顺序显示记录,那么它首先显示零值。实际上我想要首先显示那些我已设置显示顺序(即大于零)的记录。应将所有零值视为最后记录。
如何为此编写查询?
答案 0 :(得分:1)
您可以在ORDER BY子句中查找案例表达
SELECT *
FROM TableName
ORDER BY CASE
WHEN ColName <> 0 THEN ColName
ELSE 9999
END
答案 1 :(得分:1)
Order by
case when `field` > 0 then `field` end ASC
, `field`
, other columns
使用案例表达式忽略该默认值。