【发布时间】:2021-05-31 10:38:15
【问题描述】:
我有一个名为 Student 的表,表列是 Id(身份密钥)和学生姓名。它有 100 条记录,从 1 到 100。我从学生表中随机删除了 5 条记录。现在该表只有 95 条记录。我如何获得逻辑表中没有 5 个 id 的内容。任何人都可以帮助找出正确的查询吗? 我尝试通过获取记录来编写查询,如果任何记录与记录不匹配,则循环中的每个记录 id 都会增加“1”,然后循环将继续直到最后一条记录第 100 条。面试官说这不是正确的方法,并没有告诉无论如何要找出来。我很困惑这是否可能。
【问题讨论】:
-
如果他们不在那里,那么您将如何找到他们?您是否有其他信息来源来说明应该有什么?还是一些计算或逻辑?请edit您的问题并澄清
-
你需要在你的表之间做一个左连接作为数字表,然后只过滤不匹配的数字
-
我只有一张桌子。
-
这确实 假设 ID 值之间没有间隙,@Sergey 和
IDENTITY(OP 似乎说他们正在使用)并不能保证那。实际上,除非您在“随机”删除它们时存储DELETE的行的值,否则您不会知道您删除了什么。 -
好的。谢谢@Larnu
标签: sql sql-server