sql 非数字增长列
来源:百度知道 编辑:UC知道 时间:2024/06/06 12:08:29
sqlserver
有一列规则如下
a_2
a_3
a_4
我怎样用最简单的方法insert这样数据,就是自增长列前面加个字符串,用row_number应该不行.
有一列规则如下
a_2
a_3
a_4
我怎样用最简单的方法insert这样数据,就是自增长列前面加个字符串,用row_number应该不行.
insert into [表]
values([字段])
select 'a_' + cast(max(cast(substring([字段], 3, 1) as int)) + 1 as varchar(20)) from [表]
--测试:
CREATE TABLE #t(x INT IDENTITY PRIMARY KEY,aa char(10))
insert into #t(aa)
SELECT 'a_'+ltrim(rtrim(str(@@IDENTITY)))
insert into #t(aa)
SELECT 'a_'+ltrim(rtrim(str(@@IDENTITY)))
insert into #t(aa)
SELECT 'a_'+ltrim(rtrim(str(@@IDENTITY)))
--注意,第一行的aa值为NULL
假设你的表tab有三列:id,aid,other。其中的id是标识列,aid是varchar类型的,那么insert语句可以这样写:
insert into tab(aid,other) select 'a_'+cast((isnull(max(id),0)+1) as varchar(10)),'你的其它内容' from tab