如何从一组文本创建一组记录?
How to create a set of record from a set of text?
我有这段代码 json_object_keys('{"A": 1, "B": 0, "C": 5}'::json)
其中 returns 一组文本如下:
json_object_keys
----------------
| A |
-----
| B |
-----
| C |
-----
基于这个 json_object_keys
结果,我想创建一个临时记录集或 table 来循环遍历这些以执行更新到 table 列,其中它等于每个键。
那么如何创建记录集呢?
通常你不需要显式创建一个临时的table,因为你可以使用IN (subquery)
表达式,例如:
update my_table
set some_column = some_value
where key_column in (
select json_object_keys('{"A": 1, "B": 0, "C": 5}'::json));
实际上,服务器在执行查询期间从子查询在内存中创建一个临时记录集。
但是,如果您确实需要命名的临时 table,请使用 CREATE TABLE AS
:
create temporary table my_temp_table as
select json_object_keys('{"A": 1, "B": 0, "C": 5}'::json);
我有这段代码 json_object_keys('{"A": 1, "B": 0, "C": 5}'::json)
其中 returns 一组文本如下:
json_object_keys
----------------
| A |
-----
| B |
-----
| C |
-----
基于这个 json_object_keys
结果,我想创建一个临时记录集或 table 来循环遍历这些以执行更新到 table 列,其中它等于每个键。
那么如何创建记录集呢?
通常你不需要显式创建一个临时的table,因为你可以使用IN (subquery)
表达式,例如:
update my_table
set some_column = some_value
where key_column in (
select json_object_keys('{"A": 1, "B": 0, "C": 5}'::json));
实际上,服务器在执行查询期间从子查询在内存中创建一个临时记录集。
但是,如果您确实需要命名的临时 table,请使用 CREATE TABLE AS
:
create temporary table my_temp_table as
select json_object_keys('{"A": 1, "B": 0, "C": 5}'::json);