SQLserver定义9位工号,8位流水号前面加公司代码,总部公司用代码1,厦门公司用代码2,泉州公司用代码3, 目前8位流水号总部公司和厦门公司公司共用, 泉州公司独立编号。在现有最新工号基础上继续叠加1
时间: 2024-05-06 16:18:17 浏览: 7
可以使用以下 SQL 语句实现:
```sql
DECLARE @latestEmpNo VARCHAR(9)
SET @latestEmpNo = (SELECT MAX(EmployeeNo) FROM Employee)
DECLARE @companyCode VARCHAR(1)
DECLARE @newEmpNo VARCHAR(9)
IF @latestEmpNo LIKE '1%' OR @latestEmpNo LIKE '2%'
SET @companyCode = LEFT(@latestEmpNo, 1)
ELSE
SET @companyCode = '3'
IF @companyCode = '3'
SET @newEmpNo = '3' + CONVERT(VARCHAR(8), CONVERT(INT, RIGHT(@latestEmpNo, 8)) + 1)
ELSE
SET @newEmpNo = @companyCode + CONVERT(VARCHAR(8), CONVERT(INT, RIGHT(@latestEmpNo, 8)) + 1)
SELECT @newEmpNo AS NewEmployeeNo
```
首先,查询出当前最新的工号(`@latestEmpNo`)。然后,根据最新工号的前缀确定公司代码(`@companyCode`)。如果最新工号的前缀是1或2,则说明是总部或厦门公司,需要使用最新工号的前缀作为公司代码;否则是泉州公司,需要使用固定代码"3"。
最后,根据公司代码和最新工号的流水号生成新的工号(`@newEmpNo`)。如果是泉州公司,则直接将流水号加1,并在前面添加公司代码"3"。如果是总部或厦门公司,则截取最新工号的流水号部分,将其转换为整数后加1,再在前面添加公司代码。最后,将新工号返回。