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的情况.