2015-03-20 3 views
0

Я написал процедуру, чтобы вытащить все записи из таблицы Error.SQL Server: AND OR statement

Он должен тянуть только значение, когда Error столбец не NULL или пустой

Declare @StatementKey INT AS 

Select Distinct 
    error.ErrorMessage, 
    row.RowNumber, 
    Statement.StatementKey, 
    Statement.StatementName 
From 
    Statement 
Join 
    Row row ON row.FK_StatementKey = Statement.Pk_StatementKey 
Join 
    ErrorTable error ON row.RowNumber = error.RowNumber 
Where 
    Statement.StatementKey = @StatementKey 
    AND (error.ErrorMessage IS NOT NULL OR error.ErrorMessage <> '') 

Я сделал это, но он по-прежнему тянет строки с пустой ErrorMessage колонке

Но когда я

AND (error.ErrorMessage IS NOT NULL) 
AND (error.ErrorMessage <> '') 

Затем он не будет вытаскивать ПУСТОЙ СТОИМОСТЬ КАК НУЛЛ

Может кто-нибудь сказать мне более простой способ и, возможно, сказать мне, ПОЧЕМУ?

Спасибо, ребята.

ответ

1

Последнее и утверждение в первом запросе неверно. Вы должны заменить его на это:

AND NOT(error.ErrorMessage IS NULL OR error.ErrorMessage = '') 
+0

Спасибо за ответ – user3920526

0

Вы можете использовать Coalesce:

Coalesce(error.ErrorMessage,'')<>'' 
+0

Спасибо за ответ – user3920526