Postgresql

LEFT JOIN 和處理 NULL 值

  • April 23, 2019

我有兩張桌子。

表格1:

A   B 
------
1   'A'
2   'B'
3   'C'

表 2:

  A   C
----------
  2   15
  3   20

我正在使用以下查詢:

SELECT table1.A, table1.B, table2.C
FROM table1
LEFT JOIN table2
ON table1.A = table2.A

問題出現在輸出中,即:

   A   B   C
---------------
   1   'A'  null
   2   'B'  15
   3   'C'  20

有沒有辦法將 null 設為 0,因為我必須在 table2.C 上進行排序。任何幫助表示讚賞。

我的預期輸出是:

   A   B   C
---------------
   3  'C'  20
   2  'B'  15
   1  'A'  0 

ps:我嘗試使用 IFNULL(table2.C, 0)。沒用。

這可能是最有效的解決方案:

SELECT A, t1.B, t2.C
FROM   table1 t1
LEFT   JOIN table2 t2 USING (A)
ORDER  BY t2.C NULLS FIRST;

預設情況下,NULL 值排在最後。你可以用NULLS FIRST. 看:

引用自:https://dba.stackexchange.com/questions/235490