真纳闷!快,谁能告诉我为什么?

wulingen 2004-10-29 09:12:39
1. select contract_no from contract
2. select contract_no from contract where (contract_no in (select contract_no from orders))
3. select contract_no from contract where not (contract_no in (select contract_no from orders))

以上三个sql语句执行结果:第2句和第3句的结果集合并应为第1句的结果集呀!可我实际却不是,这是为什么?
...全文
66 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
davorsuker39 2004-10-29
  • 打赏
  • 举报
回复
有可能是你的orders里面有NULL
cbzdream 2004-10-29
  • 打赏
  • 举报
回复
orders和contract 记录条数一样?
wulingen 2004-10-29
  • 打赏
  • 举报
回复
都不是!
第一,我的contract_no 不存在NULL值;
第二,select contract_no from contract where (contract_no not in (select contract_no from orders)) 和
select contract_no from contract where not (contract_no in (select contract_no from orders)) 语句其实是一样的。
chjltjy 2004-10-29
  • 打赏
  • 举报
回复
第一可能 contract_no 有null值
第二把第三句重写:
select contract_no from contract where (contract_no not in (select contract_no from orders))
rouqu 2004-10-29
  • 打赏
  • 举报
回复
UP
iwl 2004-10-29
  • 打赏
  • 举报
回复
你的contract_no 有null值
zjcxc 元老 2004-10-29
  • 打赏
  • 举报
回复
因为你的 contract 或 contract_no 有null值
gotoitcn 2004-10-29
  • 打赏
  • 举报
回复
有null值,不要用in,用exist

34,587

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧