如何在postgresql中选择多行?

时间:2015-03-04 07:20:24

标签: sql postgresql select resultset

我可以给出一个由单个值组成的结果集,比如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

这不是我想要的。

3 个答案:

答案 0 :(得分:1)

您可以使用union来获取您想要的内容。但如果这是以1,4,7逗号分隔的字符串,则需要使用regexp_split_to_table函数。 Mentioned here and here

Select 1
UNION
select 4
UNION
select 7

答案 1 :(得分:1)

您可以unnest将其作为array

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

答案 2 :(得分:1)

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

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

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

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