从SELECT语句中的数组中获取值

时间:2010-03-05 13:30:01

标签: sql postgresql

是否可以定义一个文本字段数组(或任何数据类型)并从中选择一个值,所有这些都在一个语句中?例如:

SELECT ARRAY['First', 'Second', 'Third'][mytable.state] as interpreted_state WHERE mytable.id = 1;

4 个答案:

答案 0 :(得分:3)

您可以使用SQL“CASE”语句进行排序,不是吗?

SELECT CASE mytable.state 
  WHEN 0 THEN 'First'
  WHEN 1 THEN 'Second'
  WHEN 2 THEN 'Third'
   END 
  FROM mytable
 WHERE mytable.id = 1

答案 1 :(得分:1)

SELECT * FROM mytable.id WHERE columns IN ("1","2","3");

如果我理解你的意思是什么..

答案 2 :(得分:0)

这真的是一种愚蠢的方式。有一个查找表并使用连接。

答案 3 :(得分:0)

你很亲密,你只需要一些麻烦。

SELECT (array['one','two','three'])[state]
FROM mytable
WHERE id = 1;

但如前所述,CASE声明是标准的便携式方法。