AND
имеет более высокий приоритет, чем OR
. Вам необходимо объединить условия в круглые скобки.
Ваш запрос должен выглядеть следующим образом:
--version 1: Using OR
SELECT
[Country_IBS]
,[Item_Number]
,[Price_List]
,List_Price
,[Currency]
FROM #temp4
WHERE (List_Price < 4000 AND Currency IN ('EUR','GBP','CHF'))
OR (List_Price * 10 < 4000 AND Currency = 'SEK')
--Version 2: Using UNION ALL
SELECT
[Country_IBS]
,[Item_Number]
,[Price_List]
,List_Price
,[Currency]
FROM #temp4
WHERE List_Price < 4000 AND Currency IN ('EUR','GBP','CHF')
UNION ALL
SELECT
[Country_IBS]
,[Item_Number]
,[Price_List]
,List_Price
,[Currency]
FROM #temp4
WHERE List_Price * 10 < 4000 AND Currency = 'SEK'
Эти запросы, возвращающие один и тот же набор результатов, могут иметь другой план запросов в соответствии с индексами, созданными в вашей таблице. Используйте тот, который эффективнее другого.
Для получения более подробной информации Приоритет оператора и UNION .