Sql排序时,怎么将指定的值放在最前或者最后呢?
假设我们有张字段为id,name,age三个字段的表。需要将name=‘b’的记录按照id排序时放在查询结果的最后展示。
可以这样写:
SELECT * FROM `test` ORDER BY name ='b',id desc
放在最前展示可以这样写:
SELECT * FROM `test` ORDER BY name !='b',id desc
如果多个字段排序的话,name = 'xxx' 的顺序不同,结果也是不同的,sql将按照order by后面的顺序输出。
经测试,Mysql,Hive,Spark-sql和Kylin都是支持的,特此记录一下。