0

我是 SQL Server 存储过程的新手。我想知道如何编写这个存储过程。场景是:

该过程将 firstname 和 lastname 作为参数,在此基础上它获取 lastname 的第一个字母或 firstname 和第一个字母,并在其末尾附加一个数字并返回此字符串。如果字符串已经存在于数据库中,它将增加数字并返回字符串。

示例 1:

firstname: abc    
lastname: def    
output: ad001

示例 2:

firstname: pqr    
lastname: mno    
output: pm001

示例 3:

firstname: aaa    
lastname: ddd
output: ad002 

(在这种情况下,输出ad002不是,001因为该值ad001已存在于示例 1 创建的数据库中)

任何有关此问题的帮助将不胜感激。谢谢。

4

1 回答 1

1

(Update)
You can use this logic in your procedure :

Declare
   @firstname varchar(10)= 'aaa',    
   @lastname varchar(10)=  'ddd',
   @output varchar(20)

insert into name_table 
   select 
      @firstname, 
      @lastname,
      substring(@firstname,1,1)+
      substring(@lastname,1,1)
      +RIGHT('000'+cast(COALESCE(max(substring(output,3,4)),0)+1 as varchar) ,4)
   from 
      name_table 
   where 
      output like substring(@firstname, 1, 1) + substring(@lastname, 1, 1) + '%'


select * from name_table

SQL Fiddle

于 2013-05-03T05:33:36.703 回答