SELECT MaterialCode,SizeCode, [OrderID] 
FROM [OL_MaterialSize] WITH (TABLOCKX) 
WHERE 
([MaterialCode] <> '16887432' AND [SizeCode] <> '0048')
 ORDER BY [OrderID] ASC
奇怪了.
我这里要查的为
([MaterialCode] <> '16887432' 且 [SizeCode] <> '0048'
但为什么我所有的
MaterialCode='16887432' 
[SizeCode] = '0047'
不出来
还有
MaterialCode='16887433' 
[SizeCode] = '0048'
也不出来呢这两条记录应该出来的啊谢谢

解决方案 »

  1.   

    是不是有空格?(ltrim(rtrim([MaterialCode])) <> '16887432' AND ltrim(rtrim([SizeCode])) <> '0048')这样试试
      

  2.   

    SELECT MaterialCode,SizeCode, [OrderID] 
    FROM [OL_MaterialSize]
    WHERE 
    (ltrim(rtrim([MaterialCode])) <> '16887432' AND ltrim(rtrim([SizeCode])) <> '0048')没有不是一样.只要符合面的一个条件的都不出来了
      

  3.   

    我用SELECT MaterialCode,SizeCode, [OrderID] 
    FROM [OL_MaterialSize]
    WHERE 
    [MaterialCode] = '16887432' AND [SizeCode] = '0048'能找到这条记录
    然后我要把除这记录名的其他记录时用SELECT MaterialCode,SizeCode, [OrderID] 
    FROM [OL_MaterialSize]
    WHERE 
    [MaterialCode] <> '16887432' AND [SizeCode] <> '0048'的时候
    只要MaterialCode=16887432 或者 SizeCode='0048'
    的就全都不出来了怎么回事.我的SQL写错了吗
      

  4.   


    楼主你这个where逻辑,就已经说明你的
    MaterialCode='16887432'
    [SizeCode] = '0047'还有
    MaterialCode='16887433'
    [SizeCode] = '0048'本来就不应该出来吧...
      

  5.   

    如:
    create table #(id int,nid int)
    insert into # select 1,2
    insert into # select 1,3
    insert into # select 2,2select * from # where id<>1 and nid<>2
    /*
    这个本来就不会有结果
    */除非你的逻辑是
    select * from # where id<>1 or nid<>2
    /*
    1 3
    2 2
    */
      

  6.   


    create table #(id int,nid int)
    insert into # select 1,2
    insert into # select 1,3
    insert into # select 2,2select * from # where id<>1 and nid<>2
    /*
    这个本来就不会有结果
    */除非你的逻辑是
    select * from # where id<>1 or nid<>2
    /*
    1    3
    2    2
    */
    学习楼上的用法。