一个SQL自动编号的问题,求教
发布网友
发布时间:2022-04-15 05:47
我来回答
共3个回答
热心网友
时间:2022-04-15 07:16
日期 : to_char(sysdate,'yyyymmdd')
编号的话 update的时候可以使用 rownum , 如果有多个日期的数据的话,使用可以使用开窗函数 row_number(partition by month,day order by col)
insert的时候则建立一个序列来得到序号,切换日期的时候手动置0
将日期和序列号连接起来就可以 用"||"
可能你还需要使用填充函数 lpad()来固定序列号的长度,及填充0
热心网友
时间:2022-04-15 08:34
CREATE FUNCTION [dbo].[f_getmax]()
RETURNS char(12)
AS
BEGIN
DECLARE @rlt char(12);
declare @tmp char(8);
declare @xh char(4)
select @tmp=convert(nvarchar,getdate(),112);
select @xh=isnull(max(right(id,4)),0) from table1 where id like @tmp+'%';
set @rlt=@tmp+right('0000'+rtrim(@xh+1),4);
RETURN @rlt
END
使用时调用函数就可以了。
insert into table1 (id,列1) select dbo.f_getmax(),value1
热心网友
时间:2022-04-15 10:09
你的需求是按照现有日期列获取然后再进行编号,还是要获取当天日期然后编号?