返回在dictionary-Postgresql中搜索子字符串的正确内容

返回在dictionary-Postgresql中搜索子字符串的正确内容,sql,json,string,postgresql,where-clause,Sql,Json,String,Postgresql,Where Clause,我需要substring的值,这取决于使用Postgresql筛选的字符串 例如: 表格用户 {'Name': 'Eric', 'Age':'29', 'Weight': '80kg'} {'Age':'41','Name': 'Alex', 'Weight': '100kg'} {'Weight': '90kg','Age':'18', 'Name': 'Jason'} 由于字符串的长度,字段的顺序没有组织,位置也没有固定 此结果是一个唯一的JSON字段 因此,我需要根据我搜索的字符

我需要substring的值,这取决于使用Postgresql筛选的字符串

例如:

表格用户

{'Name': 'Eric', 'Age':'29', 'Weight': '80kg'}

{'Age':'41','Name': 'Alex', 'Weight': '100kg'}

{'Weight': '90kg','Age':'18', 'Name': 'Jason'}
  • 由于字符串的长度,字段的顺序没有组织,位置也没有固定
  • 此结果是一个唯一的JSON字段
因此,我需要根据我搜索的字符串的值,如:

搜索的字符串(虚拟示例):

从用户名为'Jason'的用户中选择“年龄”

结果:“18”

从用户名为'Alex'的用户中选择“年龄”

结果:“41”


我可能会将函数Right()与其他函数一起使用。我试图同时使用substring(),但不适合这种情况。

不要使用string方法

由于您处理的是JSON数据类型,因此只需使用访问给定键的值:

select user_return  ->> 'Age' from Users where user_return ->> 'Name' = 'Alex'

注意:JSON对象中的键没有任何特殊顺序。

该列的名称和数据类型是什么?Hi-GMB。它是用户返回,数据类型是JSON。这有助于回答您的疑问?谢谢GMB。成功了。只有一种情况不起作用,因为JSON与内部的其他JSON非常复杂。