SQL中的最后排序:将值强制为顺序中的最后一个

Web*_*rer 2 sql sql-order-by

在SQL中,我使用过

...ORDER BY name DESC NULLS LAST
Run Code Online (Sandbox Code Playgroud)

哪个工作非常棒,但有什么办法可以设定一个特定的值是最后的吗?比如空字符串(@EMPTY).

...ORDER BY name DESC (@EMPTY) LAST
Run Code Online (Sandbox Code Playgroud)

我在表上用户选择动态构建SQL,当用户更改排序顺序时,我在SQL中更改排序顺序.此外,用户可以选择要排序的列.我要排序的列将是类型text或类型int.我不需要任何花哨ORDER BY的时候column是一个类型int,但我确实需要强制的所有值""到的结束ORDER BYtypecolumntext.

谢谢!

And*_*mar 5

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

order by
    case when name = '' then 1 else 0 end
,   name desc
Run Code Online (Sandbox Code Playgroud)