SQL Server:AND OR语句

时间:2015-03-20 22:57:11

标签: sql-server

我编写了一个程序来从Error表中提取所有记录。

它应该仅在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 <> '')

我这样做了,但仍然会使用EMPTY ErrorMessage

拉行

但是当我做的时候

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

然后它不会将EMPTY VALUE拉为空

有人可以告诉我一个更简单的方法,也许告诉我为什么?

谢谢你们。

2 个答案:

答案 0 :(得分:1)

第一个查询中的最后一个AND语句不正确。您应该将其替换为:

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

答案 1 :(得分:0)

您可以使用Coalesce:

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