在Redshift数据库中,给定一个包含以下json的字段:
{"0":true,"1":true,"2":true,"3":true,"4":true,"5":true,"6":true}
虽然我可以使用json_extract_path_text(my_field, '0')
提取true
,当我试图提取一个元素并将其转换为布尔值时,如下所示:
SELECT
json_extract_path_text(my_field, '0')::boolean
FROM my_table
然后得到以下错误:
不能将文本类型强制转换为布尔值
我不明白,因为下面的工作没有任何问题:
SELECT 'true'::boolean, 'false'::boolean;
这篇文章似乎回答了这个问题:https://stackoverflow.com/a/45799072
SELECT BOOLIN(TEXTOUT(json_extract_path_text('{"0":true}', '0')));