2012-02-24 16 views
0

假设我有一列值为(A,B,C,D)的SQL Server表(table1),并且有一列(field1)。从不在SQL Server表中的数组中选择值

我想要做的是构造一个查询,以便在table1.field1中找不到所选的每个值。

例如,如果A和d在table1.field1发现那么这将被选择将是B中的唯一值和C.

将这样的查询看起来像什么?

谢谢

埃利奥特

+1

你在C#这样做/ VB?或者是值的列表也是数据库的一部分? – TZHX 2012-02-24 12:44:44

+0

我不这样做是C#/ vb。我只是想要在Excel电子表格中的一组值上创建一个查询。我想知道电子​​表格中的哪些值不在我的数据库中,并且有很多值。 – Elliott 2012-02-24 12:54:17

回答

1

如果您需要“纯粹的”T-SQL,那很容易。 看 - 所有意图和目的,你只需要2个众人:

(A,D) 

(A,B,C,D) 

你想要的是“一切从第二,而不是从一个”。运营商不同的是你的答案(即 - 众人的逻辑区别):

USE tempdb 
go 

CREATE TABLE T1 (col1 char(1)) 
go 
INSERT T1 VALUES ('A') 
INSERT T1 VALUES ('D') 
go 
CREATE TABLE T2 (col2 char(1)) 
go 
INSERT T2 VALUES ('A') 
INSERT T2 VALUES ('B') 
INSERT T2 VALUES ('C') 
INSERT T2 VALUES ('D') 

SELECT * FROM T2 
EXCEPT 
SELECT * FROM T1 

结果:

col2 
B 
C 
1

你可以试试,

select field1 from table1 where field1 not in('A','D') 

如果你想要的东西不同,请评论。