【发布时间】:2013-12-23 06:10:50
【问题描述】:
我有一个查询,我根据用户输入动态更改排序顺序。我想让空白匹配出现在最后。这是否可以通过一种相对轻松的方式实现,不需要为每种可能的排序请求创建单独的查询?
【问题讨论】:
-
您能否添加示例数据以及期望的输出是什么?
标签: sql sql-server tsql coldfusion sql-order-by
我有一个查询,我根据用户输入动态更改排序顺序。我想让空白匹配出现在最后。这是否可以通过一种相对轻松的方式实现,不需要为每种可能的排序请求创建单独的查询?
【问题讨论】:
标签: sql sql-server tsql coldfusion sql-order-by
您可以将另一个项目添加到您的 ORDER BY 列表中。例如,如果您的列名是 user_input,那么您就有了。
ORDER BY CASE WHEN user_input = '' THEN 1 ELSE 0 END, user_input
这会将所有带有值的内容放在首位,然后按字母顺序排序,然后将所有空白值放在最后。
注意:如果您有 NULL 值而不是空白,则您也必须使用 isNull() 来考虑这些值
【讨论】:
ORDER BY CASE WHEN user_input IS NULL THEN 1 ELSE 0 END, user_input。工作就像一个魅力 - 谢谢