首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在生成优惠券代码时混淆

在生成优惠券代码时混淆
EN

Stack Overflow用户
提问于 2015-05-26 08:48:52
回答 1查看 119关注 0票数 2

我有存储过程生成优惠券代码,在这里我要传递优惠券代码的前缀

代码语言:javascript
复制
CREATE PROCEDURE [dbo].[spCouponCode1] 
        @Prefix varchar(50),
        @Lenght varchar(50)
    AS
    Begin
    declare @maxID as bigint=0
    declare @PrefixLenght as bigint=0
        set @PrefixLenght=LEN(@Prefix)
    select @maxID = isnull(max(substring(CouponCode,@PrefixLenght+1,@PrefixLenght+1+@Lenght)),0) + 1 from Coupon where CouponCode Like @Prefix + '%'
    select @Prefix + cast(@maxID as VARchar(100))
    end

这是一个完美的问题,如果在优惠券表中有像'FIRST0001‘和'FIRSTNEW001’这样的优惠券代码,我就会出现错误-- varchar to int转换失败,因为我试图解析'NEW001‘to int以找到最大值,是否可以将这个'NEW001’解析为int,忽略开头的字符?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-05-26 08:56:54

对于Sql Server,请尝试:

代码语言:javascript
复制
select @maxID = isnull(max(substring(CouponCode, patindex('%[0-9]%', CouponCode), len(CouponCode))),0) + 1 
from Coupon where CouponCode Like @Prefix + '%'
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30453809

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档