sql - 运算符不存在:文本 ->> 未知
问题描述
我正在尝试从使用 c# 创建的 json 字段中获取信息,请在此处输入图像描述
SELECT "Price"->>'TotalPrice' FROM "Table"
但我在 postgres 中有错误
错误:运算符不存在:文本 ->> 未知第 1 行:从“ReadModel”中选择“价格”->>“价格”...没有运算符与给定名称和参数类型匹配。您可能需要添加显式类型转换。
解决方案
错误消息非常明显:您的列定义为text
not as jsonb
or json
。但是该->>
运算符仅适用于jsonb
orjson
列,因此您需要对其进行强制转换:
SELECT "Price"::jsonb ->> 'TotalPrice'
FROM "ReadModel"."MyListingDto"
与您的问题无关,但是:您应该真正避免那些可怕的带引号的标识符。他们的麻烦比他们的价值要多得多。
推荐阅读
- c++ - 如何创建调用成员函数的类似 stl 的迭代器
- powershell - Get-WmiObject -Filter 或不使用 NULL
- android - 安全应用程序声称我的应用程序在启动时启动,并且可以在使用时安装其他应用程序
- css - 如何在不重置 CSS 中的旋转旋转的情况下停止动画(示例解释得最好)
- mpi - 如何将可执行文件链接到 HPC/集群中的计算节点?
- java - CDI 范围和生产者
- python - 从 if 语句中更改变量,因此该语句不是真正的 Python
- typescript - 在 pm2 旁边编译一些脚本
- python - 我应该如何从这个网站上抓取 href 链接?
- amazon-web-services - AWS:不能在一次更新中执行多个 GSI 创建或删除