У меня есть список пар значений, которые мне нужно искать в таблице в SQL Server.таблица выглядит примерно так:
| id | class | value |
| 1 | A | 300 |
| 2 | A | 400 |
| 1 | B | 500 |
| 2 | B | 350 |
| 1 | C | 230 |
| 2 | C | 120 |
Столбцы id и class имеют уникальный составной индекс, которым я хочу воспользоваться.Теперь у меня есть список пар id-классов, которые я должен получить из этой таблицы:
(1, A)
(2, B)
Мне нужно выбрать их, чтобы ОБНОВИТЬ значение обеих строк до любого значения.Допустим, 1000.
Моя проблема в том, как выбрать эти две строки, используя преимущества составного индекса?
Я пробовал это:
SELECT
*
FROM
table
WHERE
id IN (1, 2)
AND class IN ('A','B')
Ноэто возвращает мне комбинации:
| id | class |
| 1 | A |
| 1 | B |
| 2 | A |
| 2 | B |
и я просто хочу:
| id | class |
| 1 | A |
| 2 | B |
это будет работать:
SELECT
*
FROM
test
WHERE
CAST(id as varchar)+class IN ('1A', '2B')
, но это нарушает индекс.Есть ли способ получить то, что мне нужно, пользуясь индексом?