我得到了一个字符串,该字符串可以包含由波浪号分隔的多个优惠代码123~125~126
我还有一个表,它可能会或可能不会定义父/子关系
tbl_allowed
============
offercode varchar(15)
parent_oc varchar(15)
ex:
offercode = 124
parent_oc = 126
我已经有一个函数可以获取分隔字符串并将其拆分,但我想获取字符串,将内容与其中的内容进行比较,然后通过将 parent_oc 列tbl_allowed
中存在的任何值替换tbl_allowed
为 offercode 列中的值来重新生成它. 如果不存在已定义的关系,则仅使用自身。
这很简单,只需一个优惠代码:
set @newOfferCode = (select top 1 coalesce(cac.offercode, @lOfferCode)
from tbl_allowed cac
where OfferCode = @lOfferCode or parent_oc = @lOfferCode)
select coalesce(nullif(@newOfferCode,''), @lOfferCode)
但是当我有一个波浪线分隔的字符串时我遇到了困难。有任何想法吗?