如何在 postgresql 中 select 多行?

How to select multiple row in postgresql?

我可以给出一个由单个值组成的结果集,比如说1,如下:

SELECT 1 as column;

它给了我结果集:

column
------
  1

但是我有一个以字符串表示的此类值的列表 (1, 4, 7, ...),我需要生成以下结果集:

column
------
  1
  4
  7
  .
  .
  .

我试过 SELECT * FROM (1, 4, 7) 但没用。我也尝试 SELECT 1, 4, 7 但它产生了以下结果集:

col1   col2    col3
 1       4      7

这不是我想要的。

您可以使用 union To get what you want.But if this is the sting as 1,4,7 comma seprated then you need to use the regexp_split_to_table function. Mentioned here and here

Select 1
UNION
select 4
UNION
select 7

你可以 unnest 它作为 array:

SELECT UNNEST(ARRAY[1, 4, 7])

如果这些是常数值,您可以使用 values 子句:

select * 
from (
   values (1), (4), (7)
) as t(id);

如果您的值在字符串文字中,您可以使用:

select *
from unnest(string_to_array('1,2,3,4', ',')) as id;