Если не существует заявление в SQL Server 2005 - PullRequest
1 голос
/ 26 января 2010

Как написать, если не существует оператора в SQL Server 2005 для следующего условия

Если @MeasurementId скажет значения (1,2,3), это существующие значения, с которыми работает оператор ниже но когда @ MeasurementId = 0 это не работает ...

If not exists(select Mat_Id,MeasurementId from MaterialQuantity where 
 Mat_Id=@Id and MeasurementId=@MeasurementId)

Однако приведенное выше утверждение не работает, если в столбце MeasurementId есть значения NULL. Имейте в виду, MeasurementId здесь не иностранный ключ ...

Как назначить NULL, если @MeasurementId равно 0, или использовать @MeasurementId, как в where заявление ...

Это моя Таблица MaterialQuantity

1 Ответ

3 голосов
/ 26 января 2010

Если я не понял неправильно, я думаю, что вы используете синтаксис ISNULL :

If not exists(select Mat_Id,MeasurementId from MaterialQuantity where 
 Mat_Id=@Id and ISNULL(MeasurementId, 0) =@MeasurementId)
...