Просто быстрый вопрос. Я использую отдельные значения вручную занесены пользователем, и делает SQL-запрос по сравнению с двумя колонками, как:Использование IN с несколькими столбцами
SELECT col3,col1,col4 FROM table WHERE
col1='SomeReallyLongText' OR col2='SomeReallyLongText'
Повторение SomeReallyLongText терпима, но моя программа также поддерживает зацикливание через документ Excel с несколькими сотнями строки - это означает, что я буду делать:
SELECT col3,col1,col4 FROM table WHERE
col1 IN('item1','item2',...'itemN') OR col2 IN('item1','item2',...'itemN')
И запрос будет исчерпывающе долго, что я не могу себе представить, является эффективным. Есть ли способ сократить этот, так что два столбца можно сравнить с тем же набором IN (xxx)?
Если нет, существуют ли другие (более эффективные) способы предоставления набора значений в запросе?
(я использую C# с .NET 4.0 Client Profile, с помощью Excel Interop, чтобы получить доступ к файлу)
Вы можете использовать таблицу значного параметр для передачи массивов вещей, а не только с 'DataTable's и хранимыми процедурами HTTP://www.mssqltips.com/sqlservertip/2112/table-value-parameters-in-sql-server-2008-and-net-c/ –