我有一个包含json字段的表。关键之一具有大小写混合的值,我想将它们转换为小写。我尝试了一些方法来做到这一点,但没有任何效果,并且提出了明确的强制转换问题。
UPDATE table SET data = LOWER( CAST (data AS json)) WHERE id=123;
上述查询引发了以下错误。
没有函数匹配给定的名称和参数类型。您可能需要 添加显式类型转换。
答案 0 :(得分:1)
lower()
用于类型text
。因此,首先将json数据转换为文本。执行lower()
后,您可以将其强制转换回类型json
:
UPDATE a SET data = LOWER(data::text)::json;