update 2.7.3
This commit is contained in:
@@ -581,15 +581,35 @@ SELECT * FROM user
|
||||
|
||||
对于数字或者日期类型,可以在排序字段前添加一个负号(minus)来实现。(`-∞...-3、-2、-1`)
|
||||
|
||||
```SQL
|
||||
SELECT * FROM user
|
||||
ORDER BY -date_login ASC;
|
||||
```
|
||||
|
||||

|
||||
|
||||
对于字符型或者字符型数字,此方法不一定能得到期望的排序结果,可以使用 `IS NOT NULL` 比较运算符。另外 `!ISNULL( )` 函数等同于使用 `IS NOT NULL` 比较运算符。
|
||||
|
||||
```SQL
|
||||
-- IS NOT NULL
|
||||
SELECT * FROM user
|
||||
ORDER BY name IS NOT NULL ASC,name DESC;
|
||||
|
||||
-- !ISNULL()
|
||||
SELECT * FROM user
|
||||
ORDER BY !ISNULL(name) ASC,name DESC;
|
||||
```
|
||||
|
||||
 
|
||||
|
||||
上述语句先使用 `!ISNULL(name)` 字段进行升序排列,而只有当 `name` 列值不为 `NULL` 时,`!ISNULL(name)` 才为真,所以其排到说行,而 `name DESC` 则实现了 `非NULL` 值降序排列。
|
||||
|
||||
还可以使用 `COALESCE` 函数实现需求
|
||||
|
||||
|
||||
```SQL
|
||||
SELECT * FROM user
|
||||
ORDER BY COALESCE(name, 'zzzzz') DESC;
|
||||
```
|
||||
|
||||

|
||||
|
||||
|
||||
Reference in New Issue
Block a user