编写SQL函数:提取最大值对应位置后字符串并添加前后标签
SQL函数实现:提取最大值对应位置后的字符并添加指定标签
需求说明
实现SQL函数,接收输入字符串和最大值位置参数,提取该位置之后的所有字符,并用<ag>标签包裹前后。
完整函数代码
CREATE FUNCTION [dbo].[AppendSuffix] ( @P_Input NVARCHAR(50), @P_MaxValue int ) RETURNS NVARCHAR(55) AS BEGIN DECLARE @V_Result NVARCHAR(MAX); DECLARE @V_ERROR NVARCHAR(MAX); -- 参数合法性校验:非法参数返回空值(可按需调整) IF @P_MaxValue < 0 OR @P_MaxValue >= LEN(@P_Input) BEGIN SET @V_Result = ''; RETURN @V_Result; END -- 截取目标字符并包裹标签 SET @V_Result = '<ag>' + SUBSTRING(@P_Input, @P_MaxValue + 1, LEN(@P_Input) - @P_MaxValue) + '</ag>'; RETURN @V_Result; END;
逻辑说明
- 参数校验:避免
@P_MaxValue超出有效范围(小于0或大于等于字符串长度),防止截取操作出错 - 字符截取:使用
SUBSTRING函数从@P_MaxValue + 1的位置开始,截取字符串剩余的全部内容 - 标签拼接:将截取得到的字符用
<ag>标签包裹,生成最终返回结果
示例验证
当传入以下参数:
@P_Input = 'value'@P_MaxValue = 2
执行函数后返回结果:
<ag>lue</ag>
内容的提问来源于stack exchange,提问作者Md Muntazim
相关产品推荐
相关产品推荐

