我可以选择以下order by
:
ORDER BY 4 DESC, case when (5 is null ) then 1 else 2 end, 5 desc,10
但是,显然,第五列用作文字5
,与其他表达式不同:
A constant expression was encountered in the ORDER BY list, position 2.
我在这里应该做什么?
谢谢!
答案 0 :(得分:2)
使用实际的列名!这样,将来对所选列所做的任何更改都不会破坏您的订单。
如果您不相信我:https://sqlblog.org/2009/10/06/bad-habits-to-kick-order-by-ordinal
答案 1 :(得分:0)
这是个坏主意。不管使用多久,都使用列名。否则将是维护的噩梦。您应避免使用动态sql。