SQL 字符串处理问题

一段 2011-11-13 04:35:57
假设现在有三个变量 @stringvalue @prefix @suffix
现在

@stringvalue=' leave %leave_Code% %staff_No% ABC'


要求处理后的效果


'''leave'' + @leave_code + @staff_no + ''ABC'''

也就是说 变量不带百分号的,前后加上引号,带百分号的百分号去掉,变量加前缀@ ,变量个数不确定,求思路,或者直接给代码也行,谢谢了
...全文
110 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
pengxuan 2011-11-13
  • 打赏
  • 举报
回复

declare @stringvalue varchar(100)
declare @xml xml
set @stringvalue=' leave %leave_Code% %staff_No% ABC'
select @xml='<n>'+replace(ltrim(replace(@stringvalue,' ',' ')),' ','</n><n>')+'</n>'
;with cte as
(
select c=case when charindex('%',c1.value('.','varchar(30)'))>0 then '@'+replace(c1.value('.','varchar(30)'),'%','') else ''''''+c1.value('.','varchar(30)')+'''''' end from @xml.nodes('/n') as t(c1)
)
select ''''+stuff((select '+'+c from cte for xml path('')),1,1,'')+''''
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
'''leave''+@leave_Code+@staff_No+''ABC'''

(1 行受影响)



先拆行,替换,再合并
一段 2011-11-13
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 geniuswjt 的回复:]

无聊,折腾
[/Quote]
不是折腾,是有需求~~~
geniuswjt 2011-11-13
  • 打赏
  • 举报
回复
无聊,折腾

34,576

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧