[英]MySQL : How to order by two or more columns and the NULL's value will be last?
如果第一列為null但第二列不為null等,則嘗試排序列名稱首先不為null。
表:
id name1 name2 name3
1. a b
2. a1 c
3. b1 c1
4. c2
5. c3
6. a2
7. b2 c4
8. a3
預期結果
id
1
2
6
8
3
7
4
5
我曾嘗試使用COALESCE和IFNULL但它返回零結果。
返回第一個非
NULL
列表值,或NULL
如果沒有非NULL
值。mysql> SELECT COALESCE(NULL,1); -> 1 mysql> SELECT COALESCE(NULL,NULL,NULL); -> NULL
如IS NULL
:
測試值是否為
NULL
。mysql> SELECT 1 IS NULL, 0 IS NULL, NULL IS NULL; -> 0, 0, 1
因此:
SELECT id
FROM Table1
ORDER BY COALESCE(name1, name2, name3) IS NULL,
COALESCE(name1, name2, name3)
在sqlfiddle上看到它。
這首先排序在所有三個列是NULL
( 那些將有IS NULL
之一,它會來找那些不為零的結果的結果); 然后是第一個非NULL
列的實際值。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.