试试:
select * from [USER]  where num not in (select phone from Freeuser)

解决方案 »

  1.   

    改正一下:
    select  *  
    from  USER    
    where  num  not  in  (select  distinct usernum  from  Freeuser)
      

  2.   

    还是不行Cannot  resolve  collation  conflict  for  equal  to  operation.
      

  3.   

    select  *  from  [USER]    where  cast(numa as varchar(10))  not  in  (select  usernum  from  Freeuser)
      

  4.   

    我建了如上一样的表在sql server中,试了,没问题
    是不是你的num和usernum数据类型不同,又没用函数转换吧
      

  5.   

    回复liu_xing_8(bill)
    user表:id,username,num(类型varchar15),code  
    freeuser表:id,usernum(类型varchar20),kind
      

  6.   

    select  *  from  [USER]    where  num  not  in  (select  distinct cast(usernum as varchar(15))  from  Freeuser)
      

  7.   

    帮你测试了一下,你写的语句没有问题,除了要在user上加[]以外。我觉得问题可以出在其它方面,我查了一下error msg 446:
    (446 16 无法解决 %1! 操作的排序规则冲突。)不知道是什么原因造成的,等等高手吧!
      

  8.   

    查到问题了,你的排序规则不同,也就是
    select  *  from  [USER]与
    select  usernum from  Freeuser
    两个结果集的排序规则不一样,是不是你的表user中num的排序规则的设置与freeuser表中的usernum的排序规则的设置不相同,请改为相同就可以了。
    所以结论是你的sql语句除了user->[user]外,其他都没错啦!