我正在尝试使用Postgresql 9.2执行此查询

WITH udetail as (select(regexp_split_to_array('user@domain', E'\\@+')))
select * from udetail[1];

购买它会使我在'['的起始位置附近出现语法错误。在9.3版下,该查询也可以正常工作。因此,我想知道是否存在另一种编写查询以获取相同结果的方法。

最佳答案

我认为您正在寻找这样的东西:

WITH udetail(x) as (
   select(regexp_split_to_array('user@domain', E'\\@+')))
select x[1] from udetail;

我认为您无法为像udetail这样的表表达式建立索引。表表达式的列是数组类型。因此,您可以在列而不是表本身上使用数组下标编号。

Demo here

08-16 06:15