SQL语句查询空值问题,请高手解决
SELECTdbo.TB_READER.sName,dbo.TB_TA_DEVICE_EVENT_KEY.sEventName,dbo.TB_USER.sUserID,d...
SELECT dbo.TB_READER.sName, dbo.TB_TA_DEVICE_EVENT_KEY.sEventName, dbo.TB_USER.sUserID, dbo.TB_EVENT_LOG.nDateTime,
DATEADD(ss, dbo.TB_EVENT_LOG.nDateTime, '1970-01-01') AS kqdatetime,
dbo.TB_EVENT_LOG.IsRead
FROM dbo.TB_EVENT_LOG
INNER JOIN
dbo.TB_READER ON dbo.TB_EVENT_LOG.nReaderIdn = dbo.TB_READER.nReaderIdn
INNER JOIN
dbo.TB_TA_DEVICE_EVENT_KEY ON dbo.TB_EVENT_LOG.nReaderIdn = dbo.TB_TA_DEVICE_EVENT_KEY.nReaderIdn
INNER JOIN
dbo.TB_USER ON dbo.TB_EVENT_LOG.nUserID = dbo.TB_USER.sUserID
WHERE (dbo.TB_TA_DEVICE_EVENT_KEY.nKeyIdn <> 3)
AND (dbo.TB_USER.sUserID <> 1)
AND (dbo.TB_USER.sUserID <> 2)
AND (dbo.TB_USER.sUserID <> 3)
--AND (dbo.TB_EVENT_LOG.IsRead = NULL)
#195[6RQ][10.174.117.40] IN 10761 1215432625 2008-07-07 12:10:25.000 NULL
#195[6RQ][10.174.117.40] OUT 10761 1215432625 2008-07-07 12:10:25.000 NULL
#195[6RQ][10.174.117.40] IN 10761 1215432641 2008-07-07 12:10:41.000 NULL
#195[6RQ][10.174.117.40] OUT 10761 1215432641 2008-07-07 12:10:41.000 NULL
#195[6RQ][10.174.117.40] IN 10761 1215441040 2008-07-07 14:30:40.000 NULL
#195[6RQ][10.174.117.40] OUT 10761 1215441040 2008-07-07 14:30:40.000 NULL
为什么 AND (dbo.TB_EVENT_LOG.IsRead = NULL)用上时,就什么也查不到
IsRead 下面值为NULL 展开
DATEADD(ss, dbo.TB_EVENT_LOG.nDateTime, '1970-01-01') AS kqdatetime,
dbo.TB_EVENT_LOG.IsRead
FROM dbo.TB_EVENT_LOG
INNER JOIN
dbo.TB_READER ON dbo.TB_EVENT_LOG.nReaderIdn = dbo.TB_READER.nReaderIdn
INNER JOIN
dbo.TB_TA_DEVICE_EVENT_KEY ON dbo.TB_EVENT_LOG.nReaderIdn = dbo.TB_TA_DEVICE_EVENT_KEY.nReaderIdn
INNER JOIN
dbo.TB_USER ON dbo.TB_EVENT_LOG.nUserID = dbo.TB_USER.sUserID
WHERE (dbo.TB_TA_DEVICE_EVENT_KEY.nKeyIdn <> 3)
AND (dbo.TB_USER.sUserID <> 1)
AND (dbo.TB_USER.sUserID <> 2)
AND (dbo.TB_USER.sUserID <> 3)
--AND (dbo.TB_EVENT_LOG.IsRead = NULL)
#195[6RQ][10.174.117.40] IN 10761 1215432625 2008-07-07 12:10:25.000 NULL
#195[6RQ][10.174.117.40] OUT 10761 1215432625 2008-07-07 12:10:25.000 NULL
#195[6RQ][10.174.117.40] IN 10761 1215432641 2008-07-07 12:10:41.000 NULL
#195[6RQ][10.174.117.40] OUT 10761 1215432641 2008-07-07 12:10:41.000 NULL
#195[6RQ][10.174.117.40] IN 10761 1215441040 2008-07-07 14:30:40.000 NULL
#195[6RQ][10.174.117.40] OUT 10761 1215441040 2008-07-07 14:30:40.000 NULL
为什么 AND (dbo.TB_EVENT_LOG.IsRead = NULL)用上时,就什么也查不到
IsRead 下面值为NULL 展开
展开全部
IsRead 不是必须的填写的字段是吗?
而且你也没有写值,默认的它也就没值
你要知道类型的话,使用类型的默认值去添加AND (dbo.TB_EVENT_LOG.IsRead = NULL
等于后面的值,而不是Null,NULL不是值,也不是字符串,只是一个空的意思
比如说IsRead是字符串对吧,你在里面没给他值,默认他也没值,那你用IsRead Null的条件,SQL会当成字符串去处理NULL这个值而不是你所谓的空
自然查不出值了
而且你也没有写值,默认的它也就没值
你要知道类型的话,使用类型的默认值去添加AND (dbo.TB_EVENT_LOG.IsRead = NULL
等于后面的值,而不是Null,NULL不是值,也不是字符串,只是一个空的意思
比如说IsRead是字符串对吧,你在里面没给他值,默认他也没值,那你用IsRead Null的条件,SQL会当成字符串去处理NULL这个值而不是你所谓的空
自然查不出值了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
同一楼。。。。。。SQL语句里NULL值不能用=,<>符号运算
应该用is null ,is not null
应该用is null ,is not null
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
数据库中不是dbo.TB_EVENT_LOG.IsRead = NULL
而是dbo.TB_EVENT_LOG.IsRead is NULL
而是dbo.TB_EVENT_LOG.IsRead is NULL
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询