首页 热点资讯 义务教育 高等教育 出国留学 考研考公
您的当前位置:首页正文

sql 180. 连续出现的数字

2023-11-12 来源:华拓网

distinct logs.Num as ConsecutiveNums from logs as logs1,logs as logs2 ,logs where logs.id=logs1.id-1 and logs.id=logs2.id-2 and logs.Num=logs1.Num and logs.Num=logs2.Num

 

sql 180. 连续出现的数字

标签:编写   and   练习   sele   div   查找   多表   nbsp   sel   

小编还为您整理了以下内容,可能对您也有帮助:

关于如何用sql语句查询出连续的一串数字

从数据库取出来字符串后
用split截成数组,然后循环数组判断
string s="1,2,4,5,7,8,9,10";
int c=0;
int a=0;
int[] ss=s.split(",");
for(int i=0;i{
int b=int.Parse(ss[i]);

if(i==0)

{
a=b;

}
else

{
if(c==4)

{
break;

//连续达到4个,跳出循环

}
a++;

if(a==b)

{
c++;
//符合继续

}

else

{
break;//不符合

}

}

}

关于如何用sql语句查询出连续的一串数字

从数据库取出来字符串后
用split截成数组,然后循环数组判断
string s="1,2,4,5,7,8,9,10";
int c=0;
int a=0;
int[] ss=s.split(",");
for(int i=0;i{
int b=int.Parse(ss[i]);

if(i==0)

{
a=b;

}
else

{
if(c==4)

{
break;

//连续达到4个,跳出循环

}
a++;

if(a==b)

{
c++;
//符合继续

}

else

{
break;//不符合

}

}

}

用sql语句实现数字的连续填充

直接使用update就可以了,只是判断条件一定要正确。

update table_name

set idx = b.row_num-1

from table_name a

join (select idx,row_number()OVER(ORDER BY idx ASC) as row_num from table_name ) b

on b.idx = a.idx

从0开始,上限根据你的数据而改变。

SQL-怎么把一列不规律的值,取出其中连续段的首尾数字?

一、反问题主:最终汇总结果,是否是根据个位、十位、百位来合计显示的?

二、如果以上答案成立,则解析如下:

1、创建临时表@T,并填充示例数据

2、创建临时表@T1,用作临时表。

两列数据:几位数、示例数据

3、创建临时表@T3,用作临时表

一列数据:当前位数的示例数据

循环当前当前位数,拼成当前位数的字符串数据,用以插入@T2

4、创建临时表@T2,储存最终结果

三、代码如下:

1、创建临时表

DECLARE @T TABLE ([VALUE] INT)

INSERT INTO @T([VALUE])

SELECT 4

UNION

SELECT 5

UNION

SELECT 6

UNION

SELECT 80

UNION

SELECT 81

UNION

SELECT 82

UNION

SELECT 100

UNION

SELECT 101

2、创建临时表@T1DECLARE @T1 TABLE ([LEN] INT,[VALUE] INT)

INSERT INTO @T1([LEN],[VALUE])

SELECT LEN([VALUE]) AS [LEN],[VALUE]

FROM @T

ORDER BY LEN([VALUE]),[VALUE]

3、向临时表@T3、@T2插入数据DECLARE @MIN INT

DECLARE @MAX INT

SELECT @MIN = MIN([LEN]),@MAX = MAX([LEN]) FROM @T1

DECLARE @T2 TABLE([VALUES] VARCHAR(MAX))

DECLARE @T3 TABLE(ID INT IDENTITY(1,1),[VALUE] INT)

WHILE(@MIN <= @MAX)

BEGIN

INSERT INTO @T3([VALUE])

SELECT [VALUE] FROM @T1 WHERE @MIN = [LEN] ORDER BY [VALUE]

DECLARE @ID INT

DECLARE @COUNT INT

DECLARE @STR VARCHAR(50)

SELECT @STR = ''

SELECT @ID = MIN(ID),@COUNT = MAX(ID) FROM @T3

WHILE(@ID <= @COUNT)

BEGIN

SELECT @STR = @STR + CONVERT(VARCHAR(10),[VALUE])+'|' FROM @T3 WHERE ID = @ID

SET @ID = @ID + 1

--SELECT * FROM @T3

END

INSERT INTO @T2([VALUES]) VALUES (@STR)

DELETE @T3

SELECT @MIN = @MIN + 1,@STR = ''

END

4、显示最终结果SELECT SUBSTRING([VALUES],1,LEN([VALUES])-1) FROM @T2

显示全文