Order By Last in SQL:强制一个值排在最后
Order By Last in SQL: Force a value to be last in the order
在SQL中,我用过
...ORDER BY name DESC NULLS LAST
效果非常好,但有什么方法可以将特定值设置为最后?比如一个空字符串(@EMPTY).
...ORDER BY name DESC (@EMPTY) LAST
我正在根据 table 上的用户选择动态构建 SQL,当用户更改排序顺序时,我也会更改 SQL 中的排序顺序。此外,用户可以选择按哪一列进行排序。我作为排序依据的列将是类型 text
或类型 int
。当 column
的类型为 int
时,我不需要任何花哨的 ORDER BY
,但我确实需要将 ""
的所有值强制到 ORDER BY
的末尾当 column
的 type
是 text
.
谢谢!
您可以使用 case
作为排序顺序中的第一个元素:
order by
case when name = '' then 1 else 0 end
, name desc
在SQL中,我用过
...ORDER BY name DESC NULLS LAST
效果非常好,但有什么方法可以将特定值设置为最后?比如一个空字符串(@EMPTY).
...ORDER BY name DESC (@EMPTY) LAST
我正在根据 table 上的用户选择动态构建 SQL,当用户更改排序顺序时,我也会更改 SQL 中的排序顺序。此外,用户可以选择按哪一列进行排序。我作为排序依据的列将是类型 text
或类型 int
。当 column
的类型为 int
时,我不需要任何花哨的 ORDER BY
,但我确实需要将 ""
的所有值强制到 ORDER BY
的末尾当 column
的 type
是 text
.
谢谢!
您可以使用 case
作为排序顺序中的第一个元素:
order by
case when name = '' then 1 else 0 end
, name desc