读书人

sql 中NOT IN 的用法,该怎么解决

发布时间: 2012-01-18 00:23:26 作者: rapoo

sql 中NOT IN 的用法
SELECT *
FROM 业户档案
WHERE (许可证批准日期 > CONVERT(DATETIME, '2007-02-01 ', 102)) AND
(业户档案.id NOT IN
(SELECT 业户id
FROM 车辆基础档案))

查询出来为什么没有数据???

[解决办法]
Try:

SELECT *
FROM 业户档案 a
WHERE (许可证批准日期 > CONVERT(DATETIME, '2007-02-01 ', 102)) AND
not exists (SELECT 1
FROM 车辆基础档案 where 业户id=a.id)

[解决办法]
句有,查下表中有有合的吧。
[解决办法]
SELECT *
FROM 业户档案 a
WHERE 许可证批准日期 > CONVERT(DATETIME, '2007-02-01 ') AND
not exists (SELECT 1
FROM 车辆基础档案 where 业户id=a.id)


[解决办法]
或者看

SELECT A.*
FROM 业户档案 A
Left Join 车辆基础档案 B On A.id = B.业户id
WHERE (A.许可证批准日期 > CONVERT(DATETIME, '2007-02-01 ', 102)) AND B.业户id Is Null

[解决办法]
--估计你的 车辆基础档案 表中 业户id 存在为null的数据,

--这样:

SELECT *
FROM 业户档案
WHERE (许可证批准日期 > CONVERT(DATETIME, '2007-02-01 ', 102)) AND
(业户档案.id NOT IN
(SELECT 业户id
FROM 车辆基础档案
where 业户id is not null)) --加上这个条件
[解决办法]
SQLSERVER规定:使用NOT IN用于子查询时,子查询的结果中不能有NULL,所以必须在子查询中排除NULL的情况.

读书人网 >SQL Server

热点推荐