【问题标题】:SQL Server Stored Procedure to generate a Code based on firstname and lastnameSQL Server 存储过程根据名字和姓氏生成代码
【发布时间】:2013-05-03 04:59:06
【问题描述】:

我是 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 创建的数据库中)

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

【问题讨论】:

    标签: sql-server sql-server-2008 sql-server-2005 stored-procedures procedures


    【解决方案1】:

    更新
    你可以在你的程序中使用这个逻辑:

    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

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-03-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多