SQL 提取两个字符之间的字符语句 帮帮忙

我想把A字段的内容复制到B字段,只取“://”与第三个“/”之间的字符,B字段为想要的结果注意ID为2的后面是没有"/"idAB1http://www.baidu.com... 我想把A字段的内容复制到B字段,只取“://”与第三个“/”之间的字符,B字段为想要的结果

注意ID为2的后面是没有"/"
id A B
1 http://www.baidu.com/now www.baidu.com
2 http://www.baidu.com www.baidu.com
3 https://www.baidu.com/aaa/bbb/aa.html www.baidu.com
4 http://ditu.baidu.cn/maps ditu.baidu.com

如下SQL语句,具体应该怎么写呢,帮帮忙,谢谢大家了
update table set b=a
展开
 我来答
Axure夜话
2014-10-10 · 知道合伙人软件行家
Axure夜话
知道合伙人软件行家
采纳数:1197 获赞数:1344
1992年毕业于太原理工大学,20年IT公司工作经验现任山西誉海和科技有限公司技术总监,老二牛车教育课程总监

向TA提问 私信TA
展开全部
使用substring(),charindex()
然后配合使用case when then else end截取字符串
追问
哥们能不能帮我写出来,我在网上也找了,但怎么弄都弄不对
追答
手头没环境,出差中
大概思路,需要一步一步的调,测
1:获取://后面的字符串
select substring(b,charindex('://',b,0)+1,len(b) from 表
2:获取 / 的位置
charindex('/',第一步骤字符串,0) ->>
select substring(substring(b,charindex('://',b,0)+1,len(b) ,charindex('://',substring(b,charindex('://',b,0)+1,len(b) ,0)+1,len(substring(b,charindex('://',b,0)+1,len(b) ) from 表
3: 根据位置截取
case when charindex('/',第一步骤字符串,0) >0 then
>>substring(substring(b,charindex('://',b,0)+1,len(b),charindex('://',substring(b,charindex('://',b,0)+1,len(b),0)+1,len(substring(b,charindex('://',b,0)+1,len(b))
else substring(b,charindex('://',b,0)+1,len(b) end
4:update 表
set B=第三部内容

把要的内容先查出来,在更新
只能说方法,我以前就是这么教学生的

数据库
http://wenku.baidu.com/view/5f1b999e89eb172ded63b78e.html

http://www.iniuche.com/archives/387.html
这里有些训练题,我以前出的,可以多练习练习
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式