2014-11-14 1 views
1

Ниже приведен очень упрощенный вариант моего заявленияT-SQL - выполнять, как если A в B

SELECT * FROM tblName WHERE aColumn LIKE '01%' and aNotherColumn IN (1,2) 

Однако, я только хочу, чтобы выполнить LIKE '01%' WHERE aNotherColumn = 1

Есть простой способ обойти это?

Благодаря

ответ

3

Я думаю, что это может быть то, что вы ищете:

SELECT * FROM tblName 
WHERE (aColumn LIKE '01%' and aNotherColumn = 1) OR aNotherColumn = 2 
+0

Спасибо - простое решение! Просто интересно, что произойдет, если будет много ценностей. У меня просто было бы множество заявлений OR – pee2pee

+0

@JanuszJasinski - сложно ответить на ваш вопрос, не видя требований, но по сути да. Просто будьте осторожны, смешивая И в том месте, где X или Y OR Z И B не совпадают с WHERE (X ИЛИ Y OR Z) И B ... (говоря о болезненном опыте). – Paddy

+0

Обратите внимание, что, похоже, вы можете написать очень большое предложение where - легко получить это тонко неправильно. Возможно, вам захочется переосмыслить, как вы это делаете, возможно, добавив временную таблицу, чтобы присоединиться ... – Paddy

0

Вы можете разделить условия, как это:

SELECT * FROM tblName WHERE (aColumn LIKE '01%' and aNotherColumn=1) or aNotherColumn=2 
Смежные вопросы