Postgresql
將別名/列定義列表賦予 ROWS FROM()
這顯然不起作用:
SELECT regexp_matches[1], regexp_matches[1] FROM ROWS FROM ( regexp_matches('fooBarBaz', '[[:upper:]]', 'g'), regexp_matches('fooBarBaz', '[[:lower:]]', 'g') );
錯誤:
$$ 42702 $$列引用“regexp_matches”不明確
如何為函式呼叫提供別名?
SELECT u[1], l[1] FROM ROWS FROM ( regexp_matches('fooBarBaz', '[[:upper:]]', 'g'), regexp_matches('fooBarBaz', '[[:lower:]]', 'g') ) AS (u text[], l text[]);
錯誤:
$$ 42601 $$具有多個函式的 ROWS FROM() 不能有列定義列表
提示:在 ROWS FROM() 中為每個函式放置一個單獨的列定義列表。
SELECT u[1], l[1] FROM ROWS FROM ( regexp_matches('fooBarBaz', '[[:upper:]]', 'g') AS (u text[]), regexp_matches('fooBarBaz', '[[:lower:]]', 'g') AS (l text[]) );
錯誤:
$$ 42601 $$僅允許返回“記錄”的函式使用列定義列表
我沒主意了。這必須是可能的。
文件:
你也需要一個表別名
SELECT T.u[1], t.l[1] FROM ROWS FROM ( regexp_matches('fooBarBaz', '[[:upper:]]', 'g'), regexp_matches('fooBarBaz', '[[:lower:]]', 'g') ) AS t (u, l);