2009-04-24 2 views

ответ

6
SELECT * FROM table WHERE 
     ((field = value) AND 
     (field2 <> value2) AND 
     (field3 <> value3)) 

Если вы имеете дело с NULL, вы должны сделать две вещи:

  1. Использование SET ANSI_NULLS ON
  2. Объявить NULL значения фиктивной стоимости.

SQL Невозможно сравнить нули.

Чтобы сделать это:

SET @value = ISNULL(@value, -1); 
+0

опечатка там я думаю ... field3 <> field3 всегда будет оценивать на неигровые не будет ли он ;) –

+0

исправил это для вас –

+0

Я скопировал оригинальное сообщение автора, прежде чем он его отредактировал. Вот почему это было. –

4

Да, вы можете делать то, что вы написали, но использовать <> вместо !=

Возможно, ответ зависит от того, что «значение» есть? Например, для целого числа 123 value будет 123; для строки «foobar» value будет 'foobar'.

2

Вы пробовали "<>"? он работает в Delphi

4

Вы пробовали <> оператор

SELECT * FROM table WHERE field = value AND field2 <> value2 
Смежные вопросы