update 2.7.3

This commit is contained in:
mba1398
2022-07-29 15:37:39 +08:00
committed by GitHub
parent 924acd78ad
commit 833ff7e1db

View File

@@ -581,15 +581,35 @@ SELECT * FROM user
对于数字或者日期类型可以在排序字段前添加一个负号minus来实现。`-∞...-3、-2、-1`
```SQL
SELECT * FROM user
ORDER BY -date_login ASC;
```
![图片](./img/ch02/ch02.07_null_first1.jpg)
对于字符型或者字符型数字,此方法不一定能得到期望的排序结果,可以使用 `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;
```
![图片](./img/ch02/ch02.07_null_first2.jpg) ![图片](./img/ch02/ch02.07_null_first2.jpg)
上述语句先使用 `!ISNULL(name)` 字段进行升序排列,而只有当 `name` 列值不为 `NULL` 时,`!ISNULL(name)` 才为真,所以其排到说行,而 `name DESC` 则实现了 `非NULL` 值降序排列。
还可以使用 `COALESCE` 函数实现需求
```SQL
SELECT * FROM user
ORDER BY COALESCE(name, 'zzzzz') DESC;
```
![图片](./img/ch02/ch02.07_null_first4.jpg)