Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/amazon-web-services/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 如何获取SQL表列中的N个间隙数?_Mysql_Sql - Fatal编程技术网

Mysql 如何获取SQL表列中的N个间隙数?

Mysql 如何获取SQL表列中的N个间隙数?,mysql,sql,Mysql,Sql,我有一个名为student data的表,它有两列SINFO和SID。SINFO的范围从G74001到G99999。以下是表格的格式 编写一个SQL查询以获取第一个n个数字,在本例中,假设“SINFO”中有3个间隔 在这种情况下,前3个间隙为G74003、G74004、G74006。如何通过SQL查询实现这一点。SID是唯一的值 创建包含所有数字的临时表 然后左键连接基表 并选择所有的空值,或顶部值,例如 您使用的是MySQL还是SQLite?在这两种情况下,处理缺口和孤岛都会很困难。另一方面,

我有一个名为student data的表,它有两列SINFO和SID。SINFO的范围从G74001到G99999。以下是表格的格式

编写一个SQL查询以获取第一个n个数字,在本例中,假设“SINFO”中有3个间隔

在这种情况下,前3个间隙为G74003、G74004、G74006。如何通过SQL查询实现这一点。SID是唯一的值

创建包含所有数字的临时表 然后左键连接基表 并选择所有的空值,或顶部值,例如


您使用的是MySQL还是SQLite?在这两种情况下,处理缺口和孤岛都会很困难。另一方面,可能的重复,请阅读以下内容:我使用的是MySQL。创建一个包含所有“G”的表,数字范围为1-100000,并使用左连接。过滤掉not nulls,您将留下空白。不需要再创建一个表。我想从表中找出间隙并将其存储在一些容器中。有人能解释一下解决方案吗。什么是表_2?表2是数据所在的表我创建它是为了测试-用数据所在表的名称替换它
Create Table #Tmp
([SINFO] [nvarchar](50) NULL)

declare @ddd int =74000 
WHILE @ddd < 74015 
BEGIN  
   select @ddd= @ddd +1
   insert into #Tmp (SINFO)  values (  'G' + Convert(Nvarchar ,  @ddd ))
END;  

--all gaps
select  #Tmp.SINFO , Table_2.SINFO  from #Tmp
left join Table_2 on #Tmp.SINFO = Table_2.SINFO 
where Table_2.SINFO is null
order by   #Tmp.SINFO

--Frist gaps
select top(1) #Tmp.SINFO , Table_2.SINFO  from #Tmp
left join Table_2 on #Tmp.SINFO = Table_2.SINFO 
where Table_2.SINFO is null
order by   #Tmp.SINFO

If(OBJECT_ID('tempdb..#Tmp') Is Not Null)
Begin
  Drop Table #Tmp
End