在PostgreSQL中按值动态选择或筛选JSON字段
表中有JSON列,我可以选择嵌套属性,如在PostgreSQL中按值动态选择或筛选JSON字段,json,postgresql,Json,Postgresql,表中有JSON列,我可以选择嵌套属性,如 SELECT '{"monday": 123}'::json->>'monday'; --> returns 123 …但是如果我想动态选择属性,它就不起作用了 SELECT '{"monday": 123}'::json->>to_char(now() AT TIME ZONE 'Pacific/Yap', 'day'); --> returns null 甚至有可能实现吗 谢谢大家! 您需要在day关键字中添加
SELECT '{"monday": 123}'::json->>'monday'; --> returns 123
…但是如果我想动态选择属性,它就不起作用了
SELECT '{"monday": 123}'::json->>to_char(now() AT TIME ZONE 'Pacific/Yap', 'day'); --> returns null
甚至有可能实现吗
谢谢大家! 您需要在day关键字中添加
FM
前缀to_char(…,'day')
具有固定大小,这意味着在monday
之后有尾随空格。FM
前缀将删除它们:
在整个表达式周围可能还需要一个
lower()
SELECT '{"monday": 123}'::json ->> to_char(now() AT TIME ZONE 'Pacific/Yap', 'FMday')