我有一个表有一个名为warnings的列。 2行的列值如下所示
warnings
-------------------------------------------------------------------
{"isNew":false,"fieldWarnings":[],"dupId":null,"conflictIds":[]}
{"isNew":false,"fieldWarnings":[],"dupId":3763,"conflictId":null}
我想要一个sql语句,它将选择顶行而不是底行。我尝试了这个SQL查询,但它选择了两行
select warnings from table where cast(warnings->>'dubId' AS TEXT) is null;
答案 0 :(得分:1)
您的查询中有dubId
,但JSON属性为dupId
。我想你刚收到错字!
请改为尝试:
select warnings from table where cast(warnings->>'dupId' AS TEXT) is null;
此外,->>
运算符已将字段值作为文本返回,因此您不需要强制转换:
select warnings from table where warnings->>'dupId' is null;