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