“选择”与“有序对”

时间:2011-10-08 18:29:18

标签: sql sql-server select sql-server-2000

我有这样的表结构。

ProductCR   productID   ProductName 
09          1553        A1 
09          1600        A2 
09          1800        A3
10          1553        A4 
10          1600        A5 
10          2000        A6

我想做这样的事情:

Select ProductoName from Products where (ProductCR,ProductID) in ((09,1553),(10,1600),(10,2000))

Result:
    A1
    A5
    A6

这在Sql Server中是否可行?这样的“选择”与“有序对”? 谢谢, 胜者。

2 个答案:

答案 0 :(得分:1)

这是不可能的。我这是一个很好的选择:

DECLARE @orderedPairs TABLE (cr int, id int)

INSERT INTO @orderedPairs (cr, id)
VALUES (09,1553),(10,1600),(10,2000)

SELECT ProductName
  FROM Products
  join @orderedPairs on ProductCR = cr
                    and ProductID = id

答案 1 :(得分:1)

Oracle allows that,但SQL Server没有。你必须把它写出来:

select  ProductoName 
from    Products 
where   ProductCR = 09 and ProductID = 1553 or
        ProductCR = 10 and ProductID = 1600 or
        ProductCR = 10 and ProductID = 2000