Сохранять порядок сортировки при использовании оператора IN в предложении WHERE - PullRequest
2 голосов
/ 23 мая 2011

Я использую SQL Server 2005.

У меня есть временная отсортированная таблица (Table_A), которая содержит 2 столбца (ID, RowNumber).
Теперь я создаю новую таблицу, выбирая все строки из другой таблицы (Table_B), которые существуют (ID значение) во временной таблице (Table_A).

SELECT * 
FROM Table_B
WHERE Table_B.ID IN (SELECT ID FROM Table_A)

Результаты запроса выше не отсортированы по Table_A сортировке.
Я ищу способ сохранить результаты новой таблицы результатов, отсортированные по сортировке Table_A.

Tx ....

Ответы [ 2 ]

3 голосов
/ 23 мая 2011

Вам нужно будет использовать JOIN вместо этого. Ниже я предположил, что Table_A может иметь только 1 строку на ID. Если это не так, то перезапись как JOIN приведет к появлению повторяющихся строк, и нам потребуется больше деталей, которые RowNumber будут использовать в целях сортировки в этом случае.

SELECT Table_B.* 
FROM Table_B JOIN Table_A ON  Table_B.ID = Table_A.ID
ORDER BY Table_A.RowNumber
0 голосов
/ 23 мая 2011

выберите b. * Из таблицы B присоединиться к Table_A a на a.id = b.id заказ по номеру a.RowNumber

...