sql server 怎么使一列实现字母+数字,该数字为自动增长的形式

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了sql server 怎么使一列实现字母+数字,该数字为自动增长的形式相关的知识,希望对你有一定的参考价值。

例如:m01 m02 m03这种形式的,请各位帮帮忙~~~~

参考技术A create table table_a1(item varchar(20))

declare @papernum VARCHAR(50)
declare @newpapernum VARCHAR(50)

set @papernum= (select top 1item from table_a1(nolock) order by item desc)

if @papernum is null

set @newpapernum='m001' -- select convert (varchar ,datepart (year,getdate()))+'B001'
else begin
set @newpapernum= substring(@papernum,1,1)+right('00'+convert(varchar,convert(int,substring(@papernum,4,1))+1),3)
end
insert into table_a1
select newpapernum=@newpapernum

select * from table_a1追问

这个可以写成触发器吗?我想要的是,每向table_a1表中插入一行数据,item列自动生成m01、m02这样的格式,item列不能为空,有办法吗?

追答

可以啊

本回答被提问者和网友采纳
参考技术B 建议你建立一个表专门为其他表生成主键,如果你用roacle也可以用sequnces自动生成。如果建表,字段内容一个就是表名,另一个就是当前的主键值,每次请求都自动增加1,然后返回这个值。 参考技术C 写个存储过程,先读取最大的那个如m03,去掉m,得到03,3+1=4,变成字符串m04,连接其他数据,插入到数据表 参考技术D 前缀是固定的?用一个自增长字段,查询的时候加上前缀。如果前缀不固定可以另外用一个字段放前缀。或者用触发器实现你的要求。

sql中如何使一列中的多个重复数据只显示第一条

按照左边如果有重复的就取右边的第一个

1、首先在如下图中是一个Student的数据表,这里需要对数据表中的StudentName数据表中的单个的数据进行修改。

2、同样的方法这里首先打开数据库查询语句,输入查询语句先查询一下数据表中的数据内容。

3、输入查询语句,:Select * from Student,输入完毕之后选择全部内容,然后选择执行按钮,执行SQL语句。

4、执行完毕之后,在Student表中的第四行数据(StudentName中的“崔”)这里需要把它修改为“亮亮”,注意这里只要修改的是单个数据,并不是整行数据。

5、在数据表上,用鼠标右击选择里面的“编辑前200行”。

6、编辑完毕之后,就可以在查询表中看到所有数据了,如下图中红线内容。

参考技术A

select AdviceName,max(authName_1) as authName_1 from table

group by AdviceName

说明:

    因为你只选择这1个列作为相同条件列,所以我分组条件就这样写的

    因为你要取第一个人名的话,max就OK了


觉得好,就请采纳

追问

如果我选择AdviceTime和AdviceName作为相同列的条件,是不是group by 后边要加上AdviceTimene ?

追答

select AdviceName,AdviceTime,max(authName_1) as authName_1 from table
group by AdviceName,AdviceTime

像这样,几个相同列条件就加几个

本回答被提问者采纳

以上是关于sql server 怎么使一列实现字母+数字,该数字为自动增长的形式的主要内容,如果未能解决你的问题,请参考以下文章

qt 下tablewidget 中要单独使一列不能编辑怎么办

在SQL数据库表中添加一列数值型(默认保留2位)的数字,该怎么写?

sql server控制小数显示位数的解决办法。

sql中如何使一列中的多个重复数据只显示第一条

qt 下tablewidget 中要单独使一列不能编辑怎么办???最好能用一个button 控件控制

仅使一列可排序的最简单方法