当前位置: 首页 > 面试题库 >

不是在SQL语句中?

章茂
2023-03-14
问题内容

我在Excel中设置了大约5000个ID,在表中我在ID中设置了30000个左右。如果我在SQL语句中使用“
In”条件,那么我在Excel中所拥有的ID大约为4300个ID。但是,如果我在Excel
id中使用“不在”。我有大约25000多个记录。我只是发现表中缺少Excel ID。

如何为此编写SQL?

示例:Excel ID是

 1,
 2,
 3,
 4,
 5,
 6,
 7,
 8,
 9,
10,

表格有ID

 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(匹配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);


 类似资料:
  • 我正在处理的目标系统不支持PDO ist,尽管我在Postgres-DB8.2+上使用PHP 5.1.x寻求防止SQL注入的解决方案。目前没有机会切换到PDO。 我目前的解决方案是pg_prepare-prepared语句: 该函数从查询字符串创建一个名为stmtname的准备好的语句,该语句必须包含单个SQL命令。stmtname可以是“”来创建未命名语句,在这种情况下,任何先前存在的未命名语句

  • 问题内容: 大家好,我想执行我的SQL语句,但是我在synatx上遇到麻烦,有人可以帮助我了解我做错了什么吗? 谢谢,阿什。 问题答案: 您需要解决的最重要的事情是使用查询参数,而不是动态地构建字符串。这将提高性能,维护和安全性。 此外,您想使用较新的强类型ADO.Net对象。确保为添加使用指令。 注意此代码中的语句。完成连接后,他们将 确保 您的连接已关闭。这很重要,因为数据库连接是有限且不受管

  • 问题内容: 我有此查询返回我的ID 但我收到此语句的语法错误 我如何正确更新从第一条语句中检索到的ID 问题答案: 正确的:

  • 主要内容:删除单个记录,删除多个记录,删除所有记录SQL DELETE语句用于从表中删除行。 通常,语句从表中删除一个或多个记录。 语法 假设有一张: 的结构和行记录得到以下结果: EMP_ID EMP_NAME CITY SALARY AGE 1 Angelina Chicago 200000 30 2 Robert Austin 300000 26 3 Christian Denver 100000 42 4 Kristen Washingt

  • 主要内容:更新单个记录,更新多条记录,不使用WHERE子句SQL UPDATE语句用于修改数据库中已有的数据。 子句中的条件决定要更新哪一行。 语法 假设有一个表,它的结构和数据记录如下所示 - EMP_ID EMP_NAME CITY SALARY AGE 1 Angelina Chicago 200000 30 2 Robert Austin 300000 26 3 Christian Denver 100000 42 4 Kristen Washi

  • 主要内容:1.不指定列名,2.通过指定列名称SQL INSERT语句用于在表中插入单个或多个数据。 在SQL中,可以通过以下两种方式插入数据: 不指定列名称 通过指定列名称 假设有一个表: 的结构和数据记录如下 - EMP_ID EMP_NAME CITY SALARY AGE 1 Angelina Chicago 200000 30 2 Robert Austin 300000 26 3 Christian Denver 100000 4