从SQL表中获取下一个匹配的字符串值

时间:2013-05-02 07:32:58

标签: sql sql-server sql-server-2008

我的SQL表有一个列名AddressName。我将客户地址名称存储在该列中。我希望以下面的格式存储它们,假设当我第一次在该列中插入一个值时,它会在插入任何值之前在该字段中存储“Utpal”我想要获取要插入的下一个字符串值作为'Utpal2 '并将在表中插入该值。同样在下一次插入时,该值应为'Utpal3'。如何使用SQL查询执行此任务请帮助。

谢谢和问候

Utpal Maity

1 个答案:

答案 0 :(得分:0)

这样的事情会对你有所帮助。举个例子:

TABLE SCHEMA:

create table person
(
  id int identity(1,1),
  address varchar(50)
)
GO

脚本:(部分)

--insert second record
insert into person
select top 1 left(address, case patindex('%[0-9]%', address) when 0 then len(address) else patindex('%[0-9]%', address) - 1 end) + 
       convert(varchar(10),convert(numeric(10,0),Coalesce(NULLIF(right(address, case patindex('%[0-9]%', address) 
                                                                                when 0 then 0 
                                                                                else len(address) - patindex('%[0-9]%', address) + 1
                                                                                end
                                                                      )
                                                               ,'')
                                                        ,0)
                                 ) + 1
              )from person
order by id desc
GO

结帐SqlFiddle