--可用下面方法实现SELECT * FROM tblTempEACompany WHERE 
cast(NTCLastName as varbinary) NOT IN
 (SELECT cast(ContactName as varbinary) FROM tblContact)

解决方案 »

  1.   

    --创建
    if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[tblContact]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
    drop table [dbo].[tblContact]
    GOif exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[tblTempEACompany]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
    drop table [dbo].[tblTempEACompany]
    GOCREATE TABLE [dbo].[tblContact] (
    [ContactName] [char] (10) COLLATE Chinese_PRC_CI_AS NULL 
    ) ON [PRIMARY]
    GOCREATE TABLE [dbo].[tblTempEACompany] (
    [NTCLastName] [char] (10) COLLATE Chinese_PRC_CI_AS NULL 
    ) ON [PRIMARY]
    GOinsert into tblTempEACompany(NTCLastName) values('1')
    insert into tblTempEACompany(NTCLastName) values('2')
    insert into tblTempEACompany(NTCLastName) values('中文')
    insert into tblTempEACompany(NTCLastName) values('english')insert into tblContact(ContactName) values('1')
    insert into tblContact(ContactName) values('2')
    insert into tblContact(ContactName) values('3')
    insert into tblContact(ContactName) values('4')
    --测试
    SELECT NTCLastName FROM tblTempEACompany WHERE 
    NTCLastName not IN (SELECT ContactName FROM tblContact)
    --删除临时表
    drop table tblTempEACompany
    drop table tblContact-----------------------------
    经测试,是正确的
      

  2.   

    SELECT 
        a.* 
    FROM 
        tblTempEACompany a
    WHERE 
        NOT EXISTS(SELECT 1 FROM tblContact where ContactName=a.NTCLastName)
      

  3.   

    如果排序规则没有问题
    那么不管你有什么字符,中英混合,都应该没有问题
    你的问题肯定不是中文字符,而是因为null的影响
    你的资料是不是:SELECT ContactName FROM tblContact有出现null的资料,那么整个语句都会查询不出来,例子:
    declare @T1 table(des varchar(10))
    declare @T2 table(des varchar(10))insert into @T1 select 'aa' union all
    select 'bb' insert into @T2 select 'aa' union all
    select null  --有个null纪录select * from @T1
    where des not in (select des from @T2 )select * from @T1 T1
    where not exists(select 1 from @T2  T2 where T2.des = T1.des)/*(2 row(s) affected)
    (2 row(s) affected)des        
    ---------- (0 row(s) affected)des        
    ---------- 
    bb(1 row(s) affected)
    */你换另外一种表达式来看看:
    SELECT * FROM tblTempEACompany WHERE 
    not exists(select 1 from tblContact where ContactName = NTCLastName)
      

  4.   

    SELECT * FROM tblTempEACompany WHERE 
    NTCLastName NOT EXISTS (SELECT * FROM tblContact WHERE ContactName = NTCLastName )
      

  5.   

    MorningTea(一勺抹茶) 果然强啊,真的就是null问题,我靠