如何在满足一个条件时检索多行

时间:2012-08-13 15:43:54

标签: sql sql-server-2008

我想要做的就是在满足条件时检索与特定销售相关联的所有行。

所以我订单上可能有5行,我试图撤回所有5行,其中一行代表某个产品代码。

我正在尝试检索的行具有相同的orderid和diffe

正如您所看到的那样,orderid对于两行都是相同的,我想要检索ManualCode等于'STKCORRECTION'的两行

简单呃?

1 个答案:

答案 0 :(得分:2)

你遗漏了许多重要的细节,但我会捅这个。假设您有下表:

OrderItemId   | Code   | OrderId
---------------------------------
1               red      2 
2               black    2
3               green    2
4               green    3
5               blue     3

并且您想要选择订单中其中一个OrderItem具有代码red的所有OrderItem,您可以使用以下查询:

with reds as
(
    SELECT distinct OrderId FROM OrderItems WHERE Code = 'red'
)
SELECT * FROM OrderItems as oi
INNER JOIN reds as r
ON oi.OrderId = r.OrderId

这将返回示例表中的前三个OrderItem。