【发布时间】:2018-06-23 20:12:32
【问题描述】:
如果任一键存在,我想获取键“a”或“b”的值。如果都不存在,我想要地图中任何键的值。
例子:
-
'{"a": "aaa", "b": "bbbb", "c": "cccc"}'应该返回aaa。 -
'{"b": "bbbb", "c": "cccc"}'应该返回bbb。 -
'{"c": "cccc"}'应该返回cccc。
目前我正在这样做:
SELECT COALESCE(o ->> 'a', o ->> 'b', o->> 'c') FROM...
问题是我真的不想明确命名键“c”,因为有些对象可以有任何键。
那么我如何实现“如果存在则获取'a'或'b'的值。如果都不存在,则抓取任何存在的东西。”的预期效果?
我正在使用 postgres 9.6。
【问题讨论】:
标签: sql postgresql jsonb postgresql-9.6