Postgres选择JSON字段不为空的位置

时间:2014-03-10 14:36:47

标签: json postgresql select

我有一个表有一个名为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;

1 个答案:

答案 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;