sql - SQL : Force a value to be last in the order 中的按最后排序

标签 sql sql-order-by

在 SQL 中,我使用过

...ORDER BY name DESC NULLS LAST

效果非常棒,但是有什么方法可以将特定值设置为最后?例如空字符串 (@EMPTY)。
...ORDER BY name DESC (@EMPTY) LAST

我根据用户对表的选择动态构建 SQL,当用户更改排序顺序时,我会更改 SQL 中的排序顺序。此外,用户可以选择要排序的列。我排序的列将是类型 text或输入 int .我不需要任何花哨的ORDER BYcolumn是类型 int ,但我确实需要强制所有值 ""到最后ORDER BYtypecolumntext .

谢谢!

最佳答案

您可以使用 case作为排序顺序中的第一个元素:

order by
    case when name = '' then 1 else 0 end
,   name desc

关于sql - SQL : Force a value to be last in the order 中的按最后排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28997035/

相关文章:

sql - 获取第一行的条件 SUM

sql - 查询选择查询的计数(*)但仅返回查询结果 OFFSET 的 LIMIT

mysql - 通过不工作使用 Group 检索最新时间行

sql - 带有包含数字和文本的 varchar 字段的 order 子句

MySQL ORDER_BY 字符串中的部分整数

mysql - json 字段类型与每个键一个字段

MySQL 在同一个表中选择和计数

javascript - 删除 sql 或 javascript 循环中的层次结构行

mysql - 按两列对 MySQL 表进行排序

sql-order-by - SQL Server 2012 中的 group_concat 与 ORDER BY 另一列