我可以给出一个由单个值组成的结果集,比如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
这不是我想要的。
答案 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;