TI
分类 姓名 金额 收费员
数据1......
数据2......
数据3......
数据4...... 结果自动生成的编号 分类 姓名 金额 收费员
001 数据1......
002 数据2......
003 数据3......
004 数据4......
分类 姓名 金额 收费员
数据1......
数据2......
数据3......
数据4...... 结果自动生成的编号 分类 姓名 金额 收费员
001 数据1......
002 数据2......
003 数据3......
004 数据4......
IF OBJECT_ID('TB')IS NOT NULL DROP TABLE TB
GO
CREATE TABLE TB(ID INT PRIMARY KEY,[NAME] VARCHAR(10))
INSERT TB SELECT 1,'A'
INSERT TB SELECT 3,'B'
INSERT TB SELECT 5,'C'
INSERT TB SELECT 7,'D'SELECT *,自动生成的编号=right('000'+ltrim((SELECT COUNT(1) FROM TB WHERE ID<=T.ID)),3) FROM TB T
/*ID NAME 自动生成的编号
----------- ---------- -------
1 A 001
3 B 002
5 C 003
7 D 004*/
if object_id('tb') is not null drop table tb
drop function dbo.FC_Next
create function dbo.FC_Next()
returns char(8)
as
begin
return (select 'BH'+right(1000001+isnull(right(max(BH),6),0),6) from tb)
end
create table tb
(
BH char(8) primary key default dbo.FC_Next(),
col int
)
select * from tb
begin tran
insert into tb (col) values (1)
insert into tb (col) values (2)
insert into tb(BH,col) values (dbo.FC_Next(),14)
commit tran
select * from tb
IF OBJECT_ID('TI')IS NOT NULL DROP TABLE TI
GO
CREATE TABLE TI([NAME] VARCHAR(10))
INSERT TI SELECT '张三'
INSERT TI SELECT '李四'
INSERT TI SELECT '王五'
INSERT TI SELECT '赵六'select 自动编号=(select count(*) from ti where name<=a.name),* from ti a order by namedrop table TI
/*自动编号 NAME
----------- ----------
1 李四
2 王五
3 张三
4 赵六(所影响的行数为 4 行)*/
declare @TI table (分类 varchar(5),姓名 sql_variant,金额 sql_variant,收费员 sql_variant)
insert into @TI
select '数据1',null,null,null union all
select '数据2',null,null,null union all
select '数据3',null,null,null union all
select '数据4',null,null,nullselect * from @TI select row_number() over(order by 分类) as 自动编号,* from @TI
--> 测试数据: @TI
declare @TI table (分类 varchar(5),姓名 varchar(5),金额 varchar(5),收费员 varchar(5))
insert into @TI
select '数据1',null,null,null union all
select '数据2',null,null,null union all
select '数据3',null,null,null union all
select '数据4',null,null,nullselect * from @TI
/*
分类 姓名 金额 收费员
----- ----- ----- -----
数据1 NULL NULL NULL
数据2 NULL NULL NULL
数据3 NULL NULL NULL
数据4 NULL NULL NULL(4 row(s) affected)
*/select '00'+cast(row_number() over(order by 分类) as nvarchar(6)) as 自动编号,* from @TI
/*
自动编号 分类 姓名 金额 收费员
-------- ----- ----- ----- -----
001 数据1 NULL NULL NULL
002 数据2 NULL NULL NULL
003 数据3 NULL NULL NULL
004 数据4 NULL NULL NULL
*/
insert into @TI
select '数据1',null,null,null union all
select '数据2',null,null,null union all
select '数据3',null,null,null union all
select '数据4',null,null,nullselect identity(int,1,1) as ID ,* into #temp from @TI
select '00'+cast(ID as nvarchar(6)) as 自动编号,分类,姓名,金额,收费员
from #tempdrop table #temp
------------------------------Result--------------------------
001 数据1 NULL NULL NULL
002 数据2 NULL NULL NULL
003 数据3 NULL NULL NULL
004 数据4 NULL NULL NULL
declare @t1 table (分数 nvarchar(10))
insert into @t1 select '数据1'
union all select '数据2'
union all select '数据3'
union all select '数据4'
select IDENTITY(int,001,1) 序号,* into # from @t1
select * from #
drop table #序号 分数
----------- ----------
1 数据1
2 数据2
3 数据3
4 数据4(4 行受影响)
if object_id('tb') is not null
drop table tb
go
create table tb(分类 varchar(100))
go
insert into tb
select '数据1' union all
select '数据2' union all
select '数据3' union all
select '数据4'
go
if object_id('tempdb..#') is not null
drop table #
go
select ID=identity(int,1,1),* into # from tb
go
select 编号=replicate('0',3-len(cast(Id as varchar)))+cast(id as varchar),分类 from #
SELECT right('000'+ltrim(row_number() over(order by 分类)),3) as 自动生成的编号,* FROM TB T