我有一个表,它有一个名为warnings的列。两行的列值如下所示
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;
最佳答案
查询中有dubId
,但JSON属性是dupId
。我想你只是有个打字错误!
请改为:
select warnings from table where cast(warnings->>'dupId' AS TEXT) is null;
此外,
->>
运算符将字段值作为文本返回,因此您不需要转换:select warnings from table where warnings->>'dupId' is null;
关于json - Postgres选择JSON字段不为空的位置,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/22303147/