Postgres,如果表中不存在ID,则返回默认行

时间:2020-08-28 21:53:36

标签: sql postgresql

我正在从id在数组中的表中选择行。这行得通,但是我还想为表中不存在的行返回默认值。

我目前有

  SELECT
    id,
    column1
  FROM
    table_name
  WHERE
    id = ANY(ids_array_variable)

但是,如果表中不存在数组中的某些ID,那么我的结果是短了几行。我需要它仍返回{id,default_value}的默认记录,以便结果始终具有与ids_array_variable相同的条目数

1 个答案:

答案 0 :(得分:3)

使用左联接:

select a.id, 
       coalesce(t.column1, 'some default') as column1
from unnest(ids_array_variable) as a(id)
  left join table_name t on t.id = a.id;
相关问题