码迷,mamicode.com
首页 > 数据库 > 详细

sql语句中如何分割字符串进行替换

时间:2016-08-24 19:01:46      阅读:429      评论:0      收藏:0      [点我收藏+]

标签:

碰到一个这样的需求,修改父文件夹名称,要全部更新掉子节点的名称。

规则是保留子节点按-分割后的最后一个元素不变,前面的字符串更新为父节点名称。

如下图:

技术分享

假如我修改父节点 “东南网-西岸时评 测试”-> “东南网测试”,则下面的节点应该要这样的结果:

技术分享

 

原来处理的sql语句:

update websiteB set websiteName=websiteName where treeID=@id

显然是无法满足的,用存储过程,涉及到游标遍历,还要再查一次到临时表,性能和设计上都不满意。

如果查出来放在代码里面去处理,还需要针对结果生成多条执行语句,也不合理。

 

于是,打算在原来的sql语句上,利用sql函数对要更新的值进行处理:

 

 技术分享

 

下面贴出函数的sql语句:

技术分享

 

这里主要介绍下 REVESE(‘’)函数,sql里面有indexOf函数,但是没有 lastIndexOf函数。

如果要实现类似lastIndexOf功能,我们可以先将字符串倒过来排,然后获取indexOf值。

“1234,” –>’,4321’

indexOf=1  

lastIndexOf=len(1234,)-1=4

REVESE()函数就是实现这种倒排字符串的功能。

 

利用这个小技巧,上述需求得以更优雅的解决。

sql语句中如何分割字符串进行替换

标签:

原文地址:http://www.cnblogs.com/mophes/p/5804134.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!