order by is null
时间: 2023-12-26 17:23:53 浏览: 151
order by is null是一种在SQL中用于对null值进行排序的方式。在默认情况下,null值会被认为是最小的值,因此在升序排序中,null值会出现在最前面。如果想将null值放在最后,可以使用if(isnull(字段名),0,1) desc来进行降序排序。这样,null值会被赋予一个隐含的排序属性0,而非null值会被赋予一个隐含的排序属性1,然后按照这个属性进行排序。
相关问题
pgsql order by 字段 is null 能用别名吗
可以使用别名,例如:
SELECT col1, col2, col3
FROM table
ORDER BY col1 IS NULL, col1 DESC;
其中,col1 IS NULL 会返回一个布尔值,在排序时会将空值排在最前面,这样就可以实现按照是否为 NULL 排序的效果。
mysql order by null last_order by 语句出现null的情况
当使用 `ORDER BY` 对某一列进行排序时,如果这一列中存在 `NULL` 值,那么默认情况下 `NULL` 值会被排在结果集的最前面。但有时候我们需要把 `NULL` 值排在最后面,这时可以使用以下两种方式:
1. 使用 `DESC` 关键字对该列进行倒序排序,这样 `NULL` 值就会被排在最后面。例如:
```sql
SELECT * FROM my_table ORDER BY my_column DESC;
```
2. 使用 `ORDER BY` 和 `CASE` 语句结合,对包含 `NULL` 的列进行特殊处理。例如:
```sql
SELECT * FROM my_table ORDER BY CASE WHEN my_column IS NULL THEN 1 ELSE 0 END, my_column;
```
上述语句中,首先对 `my_column` 列进行 `CASE` 语句判断,如果该列为 `NULL`,则返回值为 `1`,否则为 `0`。然后按照返回值进行排序,即先排 `0`,再排 `1`,最后再按照 `my_column` 排序。这样就可以将 `NULL` 值排在最后面了。
阅读全文