SQL员工自动编号
发布网友
发布时间:2023-05-14 09:01
我来回答
共6个回答
热心网友
时间:2024-11-24 01:12
告诉你原理,至于触发器 则自己去写.....我们要自动编号的话还要建立一个索引....通过索引来进行操作会简单很多...index=identity(int,1,1)
增加一个这样的字段.
然后,查找出你需要的拼音字母前两个
declare @py varchar(2)
set @py=''
select @py=@py+字母字段 from 拼音表 where @姓名 like '%+汉字字段+%'
order by charindex(rtrim(汉字字段),@姓名) asc
这么查就把前面两个拼音字母查出来了,你对姓名表进行遍历...
然后分组查询属于该姓名的最大id
select @maxid=max(cast(substring(3,len(id)) as int ) from
(
select * from 表 where substring(id,1,2)=@py
)a
然后加1 ,剩下的自己写.注意当查询不到的时候 @maxid 要等于0
热心网友
时间:2024-11-24 01:12
其实可以用程序实现嘛
不知道你用的什么语言
简单写下思路
1首先网上找一个拼音码转换的代码(容易找,实在不方便我可以发给你)
2利用此代码将员工姓名装换为 拼音(有可能为2位,3位,甚至4位 )
3用SQL substring函数 仅仅取前两位拼音
4然后程序里判断一下 如果拼音重复自动加一;默认为如你所示 ZJ001
热心网友
时间:2024-11-24 01:12
不大好做,直接用辩证码吧,因为还有多音字的问题,系统是不能谈话自动识别的!如果不管多音字,倒是在存储过程里是容易实现的!
热心网友
时间:2024-11-24 01:13
很简单啊,连接查询下就得了。
热心网友
时间:2024-11-24 01:14
为什么不考虑写一段临时代码来处理此事呢?
热心网友
时间:2024-11-24 01:14
好题目,先收藏。有时间再做