Глядя на ваш код, выглядит, что вы ХОТИТЕ получить определенную запись storeId, если storeId> 1. Я также предполагаю, что вы имели в виду, что НЕ ХОТИТЕ предложение where, если storeId <= 1.Если мои предположения верны, то SQL, который вы запрашиваете, вероятно, выглядит следующим образом: </p>
Select * from p where (@storeId > 1 and p.storeId = @storeId) or @storeId <= 1
После просмотра вашего обновления вопроса этот SQL должен работать для вас:
SELECT * FROM test WHERE test.city = @city AND test.price = @price
AND ((@storeId > 1 AND test.storeId = @storeId) or @storeId <=1)
Обратите внимание, что если @storeId <= 1, он вернет все записи, которые соответствуют городу и цене.Если это не то, что вам нужно, и вы не хотите, чтобы какие-либо записи возвращались при @storeId <= 1, тогда вы можете удалить последнее условие ИЛИ, как показано ниже: </p>
SELECT * FROM test WHERE test.city = @city AND test.price = @price
AND (@storeId > 1 AND test.storeId = @storeId)