即使数据在 table 中不可用,也显示过滤器值
show filter values even if the data is not available in table
于是就有了Table及其内容如下图
id
title
image
1
First
row
2
Second
row
3
third
row
所以如果我们在table中看到只有3条记录,id分别是1,2,3
table 中没有 4,5 的条目,因此没有数据。
查询:--
select "id", "title", "image"
FROM "table"
WHERE "id" IN (1, 2, 3, 4, 5)
所以 table 中只有 3 条记录,但在 where 子句中有 5 个 id。所以期望输出如下所示:--
id
title
image
1
First
row
2
Second
row
3
Third
row
4
5
因此,即使 table 中没有数据,如果 IN 运算符 select 查询中存在该 ID,也需要将其显示为空。
您不能使用 IN 运算符执行此操作,但您可以将 OUTER JOIN 连接到 VALUES 子句或取消嵌套数组:
SELECT id, title, image
FROM table
RIGHT OUTER JOIN (SELECT unnest(ARRAY[1, 2, 3, 4, 5])) as u(id)
USING (id);
这是一个fiddle。
于是就有了Table及其内容如下图
id | title | image |
---|---|---|
1 | First | row |
2 | Second | row |
3 | third | row |
所以如果我们在table中看到只有3条记录,id分别是1,2,3 table 中没有 4,5 的条目,因此没有数据。 查询:--
select "id", "title", "image"
FROM "table"
WHERE "id" IN (1, 2, 3, 4, 5)
所以 table 中只有 3 条记录,但在 where 子句中有 5 个 id。所以期望输出如下所示:--
id | title | image |
---|---|---|
1 | First | row |
2 | Second | row |
3 | Third | row |
4 | ||
5 |
因此,即使 table 中没有数据,如果 IN 运算符 select 查询中存在该 ID,也需要将其显示为空。
您不能使用 IN 运算符执行此操作,但您可以将 OUTER JOIN 连接到 VALUES 子句或取消嵌套数组:
SELECT id, title, image
FROM table
RIGHT OUTER JOIN (SELECT unnest(ARRAY[1, 2, 3, 4, 5])) as u(id)
USING (id);
这是一个fiddle。