我曾经在Excel中设置IDS 5000左右,并在表中我有大约30000 ID如果我使用“在”在SQL statment条件,我让周围4300 IDS从什么都我有ID在Excel中。 但是如果我使用“不在”与Excel ID。 我曾经让周围25000+记录。 我找出我与表中的Excel IDS失踪。
如何写sql这个?
例如:Excel的ID是
1,
2,
3,
4,
5,
6,
7,
8,
9,
10,
表有标识
1,
2,
3,
4,
6,
8,
9,
11,
12,
14,
15
现在我想获得5,7,10
从Excel哪个丢失表中的值?
更新:
什么我做的是
SELECT [GLID]
FROM [tbl_Detail]
where datasource = 'China' and ap_ID not in (5206896,
5206897,
5206898,
5206899,
5117083,
5143565,
5173361,
5179096,
5179097,
5179150)
你可能寻找EXCEPT
:
SELECT Value
FROM @Excel
EXCEPT
SELECT Value
FROM @Table;
编辑 :
Except
意志
- 对待不同的空(NULL值匹配)
- 适用DISTINCT
不同于NOT IN
这是你的样本数据:
declare @Excel Table(Value int);
INSERT INTO @Excel VALUES(1);
INSERT INTO @Excel VALUES(2);
INSERT INTO @Excel VALUES(3);
INSERT INTO @Excel VALUES(4);
INSERT INTO @Excel VALUES(5);
INSERT INTO @Excel VALUES(6);
INSERT INTO @Excel VALUES(7);
INSERT INTO @Excel VALUES(8);
INSERT INTO @Excel VALUES(9);
INSERT INTO @Excel VALUES(10);
declare @Table Table(Value int);
INSERT INTO @Table VALUES(1);
INSERT INTO @Table VALUES(2);
INSERT INTO @Table VALUES(3);
INSERT INTO @Table VALUES(4);
INSERT INTO @Table VALUES(6);
INSERT INTO @Table VALUES(8);
INSERT INTO @Table VALUES(9);
INSERT INTO @Table VALUES(11);
INSERT INTO @Table VALUES(12);
INSERT INTO @Table VALUES(14);
INSERT INTO @Table VALUES(15);
试试这个:
SELECT tableExcel.ID
FROM tableExcel
WHERE tableExcel.ID NOT IN(SELECT anotherTable.ID FROM anotherTable)
下面是一个SQL小提琴试试这个: sqlfiddle.com/#!6/31af5/14
导入Excel文件到使用SQL Server Management Studio中发现导入数据向导的SQL Server。
然后,你可以写下面的查询发现这是在该文件,但没有在表中的任何标识:
SELECT id
FROM imported_table
WHERE id NOT IN (SELECT id FROM db_table)
你应该将Excel数据在SQL Server中的表,然后做在SQL Server查询。
select distinct id from Excel where id not in (select your ids from Sqltable)
(显然选择IDS从SQLTABLE是一种选择,它返回现有的SQL Server上的ID)。
你可能认为将数据移动到SQL Server是很难做到的,但是,相反,它很容易:
1)创建一个表
CREATE TABLE ExcelIds (Id int)
2)在Excel中添加新的柱,用下式:
="insert into ExcelIds values(" & XX & ")"
其中XX是在与Excel ID的列中的参考单元。
3)从Excel中的“插入”复制到SSMS或任何工具,你在SQL Server中全光照,并执行它们。
现在,你必须在SQL Server 2台,使查询它是绝对简单。
当你过,只是删除表
DROP TABLE ExcelIds
注:因为我想,这些ID可重复我没有创建的SQL Server表中的关键字。 无论是有道理的,以创建更复杂的SQL查询,以避免在ExcelIds为此特设的解决方案重复。