私の答えはon your previous postです。ここでは、規則性の名前付き列でunnest(string_to_array(my_column, ':'))
に参加することができる方法の例です。もちろん
t=# with a as (select id,k,v from my_table, unnest(string_to_array(my_column, ':')) with ordinality as t(k,v))
, col(s, n) as (select * from unnest(array['Title', 'First', 'Middle', 'Last']) with ordinality c (s, n))
select * from a join col on n=v;
id | k | v | s | n
----+------------+---+--------+---
1 | title=aaa | 1 | Title | 1
1 | first=bbb | 2 | First | 2
1 | middle=ccc | 3 | Middle | 3
1 | last=ddd | 4 | Last | 4
(4 rows)
あなたは(あなたの前のポストに基づいて)違っ参加する必要があります。しかし、不明な部分が値から選択するのではなくテーブルから選択する方法だった場合は、上記の例が役立ちます。テーブルへ
更新
プット値:今
t=# create table keys(t text);
CREATE TABLE
Time: 91.908 ms
t=# insert into keys select unnest(array['Title', 'First', 'Middle', 'Last']);
INSERT 0 4
Time: 11.552 ms
t=# select * from keys ;
t
--------
Title
First
Middle
Last
(4 rows)
とは、キーテーブルに対して加入:私はハードコードされた「テーブルからではなく選択する方法の一例と答え
t=# with a as (select id,k,v from my_table, unnest(string_to_array(my_column, ':')) with ordinality as t(k,v))
select * from a join keys on split_part(k,'=',1) = lower(t);
id | k | v | t
----+------------+---+--------
1 | first=bbb | 2 | First
1 | last=ddd | 4 | Last
1 | middle=ccc | 3 | Middle
1 | title=aaa | 1 | Title
(4 rows)
値 "とする。質問を詳しく説明してください - –