sql语句 怎样实现提取某列的关键字添加到新的一列?

如图1所示,我的关键词有"压缩机","主轮","螺杆","作动筒","APU","控制器",利用sql语句,提取“描述”列的关键词并插入“类型”列,如果不止一个,就用逗号... 如图1所示,我的关键词有"压缩机","主轮","螺杆","作动筒","APU","控制器",利用sql语句,提取“描述”列的关键词并插入“类型”列,如果不止一个,就用逗号隔开,达到如图2的效果。谢谢了,分不是很多!
补充一下:1,是针对sql server 的数据库 2,图二 有个小错误,第二行应该是“主轮,螺杆”
展开
 我来答
zengxianchan
2016-08-11
知道答主
回答量:24
采纳率:0%
帮助的人:14.8万
展开全部
如果你的SQL版本支持正则表达式就好办了。如果不支持,有两个方案。方案1,用case 和charindex。方案二写函数(这个比较麻烦,思路是把那些非关键字替换掉了)。以方案1写一个样子给你做参考。解题: 你的关键字是:【压缩机,主轮,螺杆,作动筒,APU,控制器】这里面的一种或多种,也就是去查找[描述]列里包含这些关键字,如果包含就以逗号分隔串上放到[类型]。语句:
select [描述],(case when charindex('压缩机',[描述])>0 then else '' end)+
(case when charindex('主轮',[描述])>0 then '主轮,' else '' end)+
(case when charindex('螺杆',[描述])>0 then '螺杆,' else '' end)+
(case when charindex('作动筒',[描述])>0 then '作动筒,' else '' end)+
(case when charindex('APU',[描述])>0 then 'APU,' else '' end)+
(case when charindex('控制器',[描述])>0 then '控制器' else '' end)
from tableName
追问
不好意思,好长时间没上了,请问如果我的数据量很大的话,哪个更合适一点呢?(数据是几百万,关键字是100-200个?)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式