- 类别:
半结构化和结构化数据函数 (数组/对象)
OBJECT_CONSTRUCT¶
返回由实参构造的 OBJECT。
语法¶
实参¶
key键值对中的键。每个键都是一个 VARCHAR 值。
value与键关联的值。该值可以是任何数据类型。
*当使用星号(通配符)调用时,OBJECT 值使用属性名称作为键,使用关联的值作为值,从指定的数据构造。请参阅以下示例。
当您将通配符传递给函数时,您可以使用表的名称或别名来限定通配符。例如,要传入名为
mytable的表中的所有列,请指定以下内容:您还可以使用 ILIKE 和 EXCLUDE 关键字进行筛选:
ILIKE 筛选条件,用于查找与指定模式匹配的列名。只允许使用一种模式。例如:
EXCLUDE 筛选出与指定列或列不匹配的列名。例如:
使用这些关键字时,限定符有效。以下示例使用 ILIKE 关键字筛选出与表
mytable中的模式col1%相匹配的所有列:ILIKE 和 EXCLUDE 关键字不能组合在单个函数调用中。
您还可以在 对象常量 中指定通配符。
对于此函数,ILIKE 和 EXCLUDE 关键字仅在 SELECT 列表或 GROUP BY 子句中有效。
关于 ILIKE 和 EXCLUDE 关键字的更多信息,请参阅 SELECT 中的“参数”部分。
返回¶
返回 OBJECT 类型的值。
使用说明¶
示例¶
以下示例调用 OBJECT_CONSTRUCT 函数:
构造一个简单的对象¶
此示例说明如何构造简单对象:
使用通配符 (*) 构造对象¶
此示例使用通配符 (*),以获取 FROM 子句的属性名称和值:
此示例使用 * 并包括 ILIKE 关键字来筛选输出:
此示例使用 * 并包括 EXCLUDE 关键字来筛选输出:
此示例等同于前面的示例,但它使用对象常量而不是 OBJECT_CONSTRUCT 函数:
这是另一个使用 * 的示例。在这种情况下,没有指定属性名,因此 Snowflake 使用 COLUMN1、COLUMN2 等:
使用 SQL NULL 和 JSON null 构造对象¶
此示例使用 SQL NULL 和字符串 'null' 来构造对象:
有关更多信息,请参阅 NULL 值。
使用表达式构造对象¶
OBJECT_CONSTRUCT 支持表达式和查询来添加、修改或省略 JSON 对象中的值。
构造嵌套 OBJECT 值¶
以下示例创建一个表并插入具有两级嵌套的 OBJECT 值: