SQLserver定义9位工号,8位流水号前面加公司代码,总部公司用代码1,厦门公司用代码2,泉州公司用代码3, 目前8位流水号总部公司和厦门公司公司共用, 泉州公司独立编号。在现有最新工号基础上继续叠加1
时间: 2024-05-04 18:21:13 浏览: 52
假设最新的工号为HQ2000001,那么下一个工号应该是HQ2000002。如果要继续叠加1,可以使用以下SQL语句:
```sql
DECLARE @latest_job_number VARCHAR(9) = 'HQ2000001';
DECLARE @new_job_number VARCHAR(9);
-- 获取公司代码
DECLARE @company_code CHAR(1) = LEFT(@latest_job_number, 1);
IF @company_code = '1' OR @company_code = '2'
BEGIN
-- 总部公司和厦门公司共用8位流水号,直接在原有基础上加1
DECLARE @serial_number INT = CAST(RIGHT(@latest_job_number, 8) AS INT);
SET @serial_number = @serial_number + 1;
SET @new_job_number = @company_code + RIGHT('00000000' + CAST(@serial_number AS VARCHAR(8)), 8);
END
ELSE IF @company_code = '3'
BEGIN
-- 泉州公司独立编号,直接在最后一位加1
DECLARE @last_digit CHAR(1) = RIGHT(@latest_job_number, 1);
DECLARE @new_last_digit CHAR(1) = CHAR(ASCII(@last_digit) + 1);
SET @new_job_number = LEFT(@latest_job_number, 8) + @new_last_digit;
END
SELECT @new_job_number;
```
执行以上SQL语句,将返回下一个工号。例如,如果最新工号为HQ2000001,则返回的新工号为HQ2000002。