sql - SQL Server:多列子查询
问题描述
假设我要查询任何商品的订单号、商品号和数量,其中商品号和数量与 ordid 365 中商品的商品号和数量都匹配,并且 productCategory 为“Electronics”。
我尝试按如下方式进行:
SELECT
ordid, prodid, qty
FROM
item
WHERE
((prodid, qty) IN (SELECT prodid, qty
FROM item
WHERE ordid = 365)
AND productCategory = "Electronics")
但我收到以下错误:
在预期条件的上下文中指定的非布尔类型的表达式,靠近“,”。
关键字“and”附近的语法不正确。
我是否使用正确的 T-SQL 语法来执行这种操作?
提前致谢!
解决方案
使用exists
. SQL Server 不支持元组:
WHERE EXISTS (SELECT 1
FROM item i2
WHERE i2.prodid = item.prodid AND i2.qty = item.qty AND
i2.ordid = 365
)
推荐阅读
- java - JFrame 调用正在打开两个 JFrame
- python - 在 Dockerfile 中从源代码安装 python 包
- django - 如何使用自定义 SQL 视图扩展 Django 的测试数据库?
- c# - 将查询结果存储到变量中
- r - 在 sparklyr 中将字符串转换为 ArrayType
- html - 登录时隐藏可选的导航栏菜单 - Angular 8
- html - 从没有属性的特定 div 中抓取,其中标签可以具有相同的名称
- javascript - 使用 jQuery 使用 Iframe 数据填充父窗口中的文本输入字段
- reactjs - 如何发布使用 create react app typescript 创建的许多反应组件的文件夹
- database - 以正确的方式从数据仓库中获取数据