Có thể là thế này: http://www.sqlfiddle.com/#!1/d41d8 / 364
select translate( string_to_array(x.*::text,',')::text, '()', '')::text[]
from pg_tables as x
Cách hoạt động (từ trong ra ngoài), 5 bước:
Thứ nhất:
select x.*::text from pg_tables as x;
Đầu ra mẫu:
| X |
----------------------------------------------------------------
| (pg_catalog,pg_statistic,postgres,,t,f,f) |
| (pg_catalog,pg_type,postgres,,t,f,f) |
Thứ 2:
select string_to_array(x.*::text,',') from pg_tables as x;
Đầu ra mẫu:
| STRING_TO_ARRAY |
---------------------------------------------
| (pg_catalog,pg_statistic,postgres,,t,f,f) |
| (pg_catalog,pg_type,postgres,,t,f,f) |
Thứ 3:
select string_to_array(x.*::text,',')::text from pg_tables as x;
Đầu ra mẫu:
| STRING_TO_ARRAY |
-------------------------------------------------
| {(pg_catalog,pg_statistic,postgres,"",t,f,f)} |
| {(pg_catalog,pg_type,postgres,"",t,f,f)} |
Thứ 4:
select translate( string_to_array(x.*::text,',')::text, '()', '') from pg_tables as x
Đầu ra mẫu:
| TRANSLATE |
-----------------------------------------------
| {pg_catalog,pg_statistic,postgres,"",t,f,f} |
| {pg_catalog,pg_type,postgres,"",t,f,f} |
Cuối cùng:
select translate( string_to_array(x.*::text,',')::text, '()', '')::text[]
from pg_tables as x
Đầu ra mẫu:
| TRANSLATE |
-------------------------------------------
| pg_catalog,pg_statistic,postgres,,t,f,f |
| pg_catalog,pg_type,postgres,,t,f,f |
Kiểm tra trực tiếp: http://www.sqlfiddle.com/#!1/d41d8/ 373
Để chứng minh rằng nó hoạt động:
with a as
(
select translate( string_to_array(x.*::text,',')::text, '()', '')::text[] as colArray
from pg_tables as x
)
select row_number() over(), unnest(colArray)
from a;
Đầu ra mẫu:
| ROW_NUMBER | UNNEST |
----------------------------------------
| 1 | pg_catalog |
| 1 | pg_statistic |
| 1 | postgres |
| 1 | |
| 1 | t |
| 1 | f |
| 1 | f |
| 2 | pg_catalog |
| 2 | pg_type |
| 2 | postgres |
| 2 | |
| 2 | t |
| 2 | f |
| 2 | f |