sql - SQL 重叠语句
问题描述
我正在尝试在 SQL 中进行重叠(使用 postgres)但收到语法错误。而且我不知道为什么会出错以及我的 SQL 语句有什么问题
错误文本
[42601] 错误:“[”位置或附近的语法错误:296
SQL 语句
SELECT *,
ARRAY_AGG("reserve"."state_id" ) AS "states" FROM "orders_order"
JOIN "reserve" ON ("order"."id" = "reserve"."order_id")
GROUP BY "order"."id"
HAVING (NOT (ARRAY_AGG("reserve"."state_id" )&& ['test']::varchar(255)[]))
解决方案
如手册中所述,有两种指定数组的方法:
首先是array
关键字:
array['test']
或用花括号括起来的字符串:
'{test}'::text[]
在第二种情况下,可能需要也可能不需要强制转换,具体取决于使用它的上下文。
无需将其转换为varchar(255)[]
数组。text[]
会做得很好 - 特别是在将它与array_agg()
返回的结果进行比较时text[]
。
推荐阅读
- css - 如何在 input[type] 上覆盖 CSS 类?
- python - 将 AWS 凭证传递给 Google Cloud Dataflow、Python
- php - 为什么 OpenCart 3 中的图像不能通过管理面板加载?
- android - WebView 突然关闭
- r - 更改 R 中数据框列表的列名
- java - 如何处理文本文件中的多个arraylist值
- javascript - 使用 prettier 时出现错误“未找到与模式匹配的文件”
- c# - 如何处理控件滚动条上的左键单击?
- mongodb - 有状态集最佳实践的动态扩展
- visual-studio-code - 如何在vscode的资源管理器中获取选定的文件夹?(鼠标左键事件确实存在?)