① sql 连续编号
因为你的字段全敬唤或是数字,所以可以用max()函数来取最链迹大值,然后转为int,加1,再转为亮伍char(6). 如果你觉得6位太长,可以把下面代码中的6改称你要的长度。
先创建一个自定义函数:
create function f_getMaxCode()
returns varchar(6)
as
begin
declare @maxid int
declare @maxcode varchar(6)
set @maxcode=''
select @maxid=Cast(isnull(max(bh字段名),0)+1 as int) from 表名
set @maxcode=cast(@maxid as varchar(6))
while len(@maxcode)<6
begin
set @maxcode='0' + @maxcode
end
return @maxcode
end
在insert的时候:
insert into 表名(bh字段名,....)
values(dbo.f_getMaxCode(),....)
② SQl数据库自动编号(连续)
假如你的原来的表tb有
id,name,address三列
其中id是自动增长列,
删除其中若干行以后,
你可以这样啊
创建存储过程
create proc getTempTable
as
begin
declare @temp table
(
id int identity(1,1),
name varchar(20),
address varchar(20)
)
insert @temp
select name, address from tb
select * from @temp
end
这样你就可以得到一个ID连续的新表了
③ 关于如何用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求连续出现的数字
distinct关键字进行去重。sql求连续出现的数字可将单表查询多次,用where条件组合,用distinct关键字进行去重。
⑤ sql如何进行多个字段的统计个数
一种查询SQL如下, 利用union获得b和c各自的统计结果, 然后再一次统计整合到最终结果:
selectsum(d.b_cnt)+sum(d.c_cnt)astotal_cnt,sum(d.b_cnt)asb_cnt,case袜或whensum(d.b_cnt)=0then''elsed.valendasb_label,sum(d.c_cnt)asc_cnt,casewhensum(d.c_cnt)=0then''elsed.valendasc_labelfrom(selectbasval,count(b)asb_cnt,0asc_,0,count(c)asc_cntfromAgroupbyc)dgroup宴银byd.valSQLSerer上的测试结果(栏位次序有变化),
total_cnt为总数, b_label为b栏值, b_cnt为b栏个数, c_labe为c栏值, c_cnt为c栏个数.
这个结果跟字段是否晌好宴为整型无关, 它是统计记录出现的次数.
⑥ sql如何根据人名统计人数,如 编号 姓名 0001 张三 0002 李四 0003 王五 ---------------- 3
select dinstinct 姓名银贺手 from 你的表
union
select '累计数拍伍量:'+cast(count(distinct 姓名锋嫌) as varchar) from 你的表
⑦ sql统计连续相同数值的次数
给个思路你吧。先给表排列序号(类似ID来使用),然后写个循环,记录Failed次数,并且对比UUT_Staus值是否Failed,如果不为Failed,并且Failed大于1的,则把上一条记录插入到临时表中,最后再查找临时表。
⑧ SQL数据库中查询连续编号的的数据。
DECLARE@T1table(UserIDint,[name]nvarchar(50),numint);
insertinto@T1(UserID,[name],num)values(1001,'a',8)
insertinto@T1(UserID,[name],num)values(1002,'b',6)
insertinto@T1(UserID,[name],num)values(1003,'c',8)
insertinto@T1(UserID,[name],num)values(1004,'a',8)
insertinto@T1(UserID,[name],num)values(1005,'b',8)
select*from@t1
selecta.*from
(selectUserID,[name],[num]from@t1)ajoin
(selectUserID,[name],[num]from@t1)bona.UserID<b.UserIDanda.UserID+1=b.UserID
anda.num=b.num
groupbya.userid,a.[name],a.[num]
得到结果:1003c8
1004a8
⑨ sql怎样输出连续相同个数
--方法一
--1.创建表
Create Table T
(
ip varchar(10),
账号 Varchar(10),
序列 int,
结果 int
)
--2.测试数据
insert into T values('001','张三', 0)
insert into T values('001','张三', 0)
insert into T values('001','张三', 1)
insert into T values('001','张三', 0)
insert into T values('001','张三', 0)
insert into T values('001','李四', 0)
insert into T values('001','李四', 1)
insert into T values('002','王五', 1)
insert into T values('002','王五', 0)
insert into T values('002','王五', 0)
insert into T values('002','王五', 0)
--3.计算连续的号码
Declare @ip varchar(10)
Declare @账号 Varchar(10)
Declare @序列 int
Declare @I int=1
update T Set
结果=@I
,@I=Case When @ip=ip and @账号=账号 And @序列=序列 And 序列=0 Then @I+1 Else 1 End
,@ip=ip,@账号=账号 ,@序列=序列
--4.查询结果(相同ip中相同账号的序列中连续为0的个数是计算出来了)
--5.你要的那种效果还得继续处理
select * from T
⑩ SQL怎么统计个数
不同数据库的系统表可能不一样,比如informix就是systables
的
tabname。
informix数据库:
统计个数:
select
count(*)
from
systables
where
tabname
like
'%abc%'
查看表:
select
tabname
from
systables
where
tabname
like
'%abc%'
其他数据库的话,系统表可能是sysobjects,对应的列可能也有不同,看你的情况改吧。