我需要一些SQL帮助来查找表中没有的内容

我需要一些SQL帮助来查找表中没有的内容,sql,sql-server,tsql,Sql,Sql Server,Tsql,我需要一些帮助。我试过了,但没用。 我选择了我需要的所有数据,并试图说出其中没有的内容 原始文件 有人能告诉我正确的路吗 SELECT * FROM acknowledgement t1 where t1.st01 = '110' and (t1.shipment ='S640D14268424' or t1.Shipment ='S640D14268924' or t1.Shipment ='S640D14268925' or t1.Shipment

我需要一些帮助。我试过了,但没用。 我选择了我需要的所有数据,并试图说出其中没有的内容 原始文件

有人能告诉我正确的路吗

 SELECT * 
    FROM acknowledgement t1
    where t1.st01 = '110' 
    and (t1.shipment ='S640D14268424' or t1.Shipment ='S640D14268924' or
      t1.Shipment ='S640D14268925' or t1.Shipment ='S646D14261190' or
      t1.Shipment ='S646I14265886' or t1.Shipment ='S640D14268423' ...)
   AND [shipment] 
   NOT IN(
   SELECT [shipment] FROM acknowledgement 
   )

任何帮助都会很有用。

您正在寻找以下内容:

SELECT * FROM (
 SELECT  'S640D14268424' AS Shipment
 UNION SELECT  'S640D14268924'
 UNION SELECT  'S640D14268925' 
 UNION SELECT  'S646D14261190'
 UNION SELECT  'S646I14265886'  
 UNION SELECT  'S640D14268423'  
 UNION SELECT  'S646D14269951'
 UNION SELECT  'S646D14269939'
 UNION SELECT  'S646D14269034'  
 UNION SELECT  'S646D14269962'
 UNION SELECT  'S646D14269953'
 UNION SELECT  'S646D14271620'
 UNION SELECT  'S646D14269030'
 UNION SELECT  'S646D14269941'
 UNION SELECT  'S646D14269251'
 UNION SELECT  'S646D14273089'
 UNION SELECT  'S646D14272388'
 UNION SELECT  'S646D14273197'
 UNION SELECT  'S646D14273399'
 UNION SELECT  'S640D14273543'
 UNION SELECT  'S640D14272952'
 UNION SELECT  'S640D14272953'
 UNION SELECT  'S640D14276996'
 UNION SELECT  'S640D14277005'
 UNION SELECT  'S640D14277006'
 UNION SELECT  'S646D148047394'
 UNION SELECT  'S640D14277004'
 UNION SELECT  'S646D158049311'
 UNION SELECT  'S646D158049791'
 UNION SELECT  'S646D158049797'
 UNION SELECT  'S646D158049806'
 UNION SELECT  'S646D158049781'
 UNION SELECT  'S646D158049557'
 UNION SELECT  'S646D158049064'
 UNION SELECT  'S646D158049561'
 UNION SELECT  'S646D158049794'
 UNION SELECT  'S646D158049362'
 UNION SELECT  'S646D158049361'
 UNION SELECT  'S646D158049792'
 UNION SELECT  'S646D158049808'
 UNION SELECT  'S646D158049788'
 UNION SELECT  'S646D158049365'
 UNION SELECT  'S646D158049800'
 UNION SELECT  'S646D158049790'
 UNION SELECT  'S646D158049799'
 UNION SELECT  'S646D158049803'
 UNION SELECT  'S646D158049784'
 UNION SELECT  'S646D158049522'
 UNION SELECT  'S646D158049340'
 UNION SELECT  'S646D158049796'
 UNION SELECT  'S646D158049687'
 UNION SELECT  'S646D158049491'
 UNION SELECT  'S646D158049499'
 UNION SELECT  'S646D158049484'
 UNION SELECT  'S646D158049486'
 UNION SELECT  'S646D158049494') numbers_to_look
 WHERE Shipment NOT IN 
 (SELECT [shipment] FROM acknowledgement WHERE shipment>'' ) 

更好的方法是创建一个临时表来存储要检查的数字

您试图实现的是..您的最后一个条件是选择发货未在确认中的所有行…并且您从同一个表中获取数据..因此将始终没有记录我选择了一些不在表中的记录。我想尝试查找该表中不存在的相同记录,而不是一次查找1。您可以说t1。在“S640D14272953”、“S640D14276996”中装运。。。同样,字符更少,外观更好。如何在确认表中找到不在查找确认表中的发货?您应该改进您的问题。你在做什么?你希望得到什么?这个例子看起来不错,我复制了它并尝试了没有用。我知道前5张唱片不在那里,其他一些也在那里。这至少可以显示前5条记录。但当我运行此示例时,它发现0。您的确认表中是否有空装运值?如果是,请在第二个子查询中添加WHERE shipping>或NOT NULL。