【问题标题】:How to select multiple row in postgresql?如何在postgresql中选择多行?
【发布时间】:2015-05-05 02:21:27
【问题描述】:

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

这不是我想要的。

【问题讨论】:

  • 你需要看String splitunion

标签: sql postgresql select resultset


【解决方案1】:

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

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

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

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

【讨论】:

    【解决方案2】:

    您可以将unnest 设为array

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

    【讨论】:

      【解决方案3】:

      您可以使用union 来获得您想要的。但如果这是1,4,7 逗号分隔的刺痛,那么您需要使用regexp_split_to_table 函数。 Mentioned hereand here

      Select 1
      UNION
      select 4
      UNION
      select 7
      

      【讨论】:

      • 您的链接适用于 SQL Server。 Postgres 已经内置了将字符串拆分为数组甚至创建表格的所有功能。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-11-28
      • 2020-08-27
      • 1970-01-01
      • 2015-09-03
      • 2019-07-24
      • 1970-01-01
      相关资源
      最近更新 更多