SQL查询中的多个值

时间:2015-03-18 12:15:24

标签: sql sql-server filter

我正在学习SQL而我正在尝试运行一个查询,其中结果返回来自多个产品编号的订单。但是,在我的查询过滤器中列出这些产品编号时,我认为我犯了一个错误。我确信至少有2个订单已经放置了产品1201,因为我在单个查询中运行了数字,但是当我添加其他数字时,我得到零结果。

我的查询:

SELECT 
   h.customer_number, h.product_number, h.del_qty
FROM 
   customer_del_hist AS h 
INNER JOIN 
   inv_master AS i ON i.product_number = h.product_number
WHERE 
   (i.product_number = '1200, 1201, 1202, 1203')

4 个答案:

答案 0 :(得分:4)

你想要in。如果这些是数字,那么您不需要单引号:

WHERE i.product_number IN (1200, 1201, 1202, 1203)

如果您收到数据类型错误,则值不是数字。在这种情况下使用单引号:

WHERE i.product_number IN ('1200', '1201', '1202', '1203')

(为什么名为" product_number"没有数字的字段是一个有趣的自引用悖论。)

答案 1 :(得分:1)

您查询(即:' =")搜索' 1200,1201,1202,1203' 字符串,而不是该地方的值你需要在运算符中使用多个值或 如

WHERE  i.product_number  in(1200,1201,1202)

你可以选择

WHERE i.product_number =1200 OR i.product_number =1201 OR i.product_number =1202 OR i.product_number =1203

答案 2 :(得分:1)

您可以使用子查询进一步扩展戈登的答案

where i.product_number in (select id from all_products)

答案 3 :(得分:0)

使用WHERE IN子句  WHERE in ('1200, 1201, 1202, 1203')