«Выбрать в» с «упорядоченные пары» - PullRequest
1 голос
/ 08 октября 2011

У меня есть такая структура таблицы.

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 ]

1 голос
/ 08 октября 2011

Oracle допускает это , а SQL Server - нет. Вы должны будете написать это:

select  ProductoName 
from    Products 
where   ProductCR = 09 and ProductID = 1553 or
        ProductCR = 10 and ProductID = 1600 or
        ProductCR = 10 and ProductID = 2000
1 голос
/ 08 октября 2011

Это невозможно. Я это хороший вариант:

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
...