2015-03-04 3 views
1

я могу дать результирующий набор, состоящий из одного значения, скажем 1 следующим образом:Как выбрать несколько строк в postgresql?

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

Вам нужно посмотреть 'String split' или' union' –

ответ

1

Если эти постоянные значения, вы можете использовать values пункт:

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

Если значения находятся внутри string literal, вы можете использовать это:

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

Вы можете использовать union. Чтобы получить то, что вы хотите. Но если это укус как 1,4,7 запятой, то вам нужно использовать функцию regexp_split_to_table. Mentioned hereand here

Select 1 
UNION 
select 4 
UNION 
select 7 
+1

. Ваши ссылки для SQL Server. В Postgres уже есть все, что было встроено, чтобы разбить строку на массив или даже создать ее таблицу. –

Смежные вопросы