Goo*_*bot 0 mysql null query order-by select
我需要按两列的差异对表格进行排序
SELECT (first - second) AS dif
FROM table1
ORDER BY dif DESC
Run Code Online (Sandbox Code Playgroud)
但两列可以NULL。在这种情况下,它返回错误:
BIGINT UNSIGNED value is out of range
Run Code Online (Sandbox Code Playgroud)
这个错误的解决方案是使用IFNULL(col,0),但问题是,我需要dif是NULL,如果任一列是NULL
有很多方法可以做到这一点,但我发现这是可读的:
SELECT CASE WHEN first IS NULL OR second IS NULL THEN NULL
ELSE first - second END AS dif
FROM table1
ORDER BY 1 DESC
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
669 次 |
| 最近记录: |