日期:2014-05-17  浏览次数:20469 次

查询这一字段中的中文
例:像一个表中有一列数据

002A精油
002三利竹纤维方巾(40*40)
0034情侣面杯
0035亲一亲抱一抱杯子(老公老婆对杯)
0039卿卿我我情侣餐具
004三利厨房用巾(3条装)
005-39土黄色旅行箱
0085I love you卫浴五件套
0085芳草地棉签
010兆升豪华型塑柄鸡杜
0136碗(百年好合)
01TD096龙马精神
01TD096龙腾虎跃
0200A185雅兰中号直杯
0233东湖石竹细牙签
0244招财招福(餐具组合)
0247台灯
0258#顺适宝钻石1号尖匙
0260#顺适宝钻石1号叉
0262#顺适宝钻花2号尖匙
我只想查询这一字段中的中文,其他的不要查询进来
------解决方案--------------------
引用:
Quote: 引用:

Quote: 引用:

不是,就是想查询这一字段的中文,其他的不要,他是没有规律的。有可能数字在后面也有可能在中间,也有可能在前面,也有可还有其他字母跟符号这一些数据


哦,那就得写个函数,把其中所有的中文字符提取出来,比如:0262#顺适宝钻花2号尖匙

提取出来是 顺适宝钻花2号尖匙 吗?

是的,不知道要怎么编写,比如表名为A,字段B,能给他详细吗,因为对SQL不了解。如果一个一个修改工作量太大,所以想着看有没有这一方面的功能。可以直接提取出来。我再去慢慢修正。


是这样吗:


--drop table a

create table a(b nvarchar(100))

insert into a
select '002A精油' union all
select '002三利竹纤维方巾(40*40)' union all
select '0034情侣面杯' union all
select '0035亲一亲抱一抱杯子(老公老婆对杯)' union all
select '0039卿卿我我情侣餐具' union all
select '004三利厨房用巾(3条装)' union all
select '005-39土黄色旅行箱' union all
select '0085I love you卫浴五件套' union all
select '0085芳草地棉签' union all
select '010兆升豪华型塑柄鸡杜' union all
select '0136碗(百年好合)' union all
select '01TD096龙马精神' union all
select '01TD096龙腾虎跃' union all
select '0200A185雅兰中号直杯' union all
select '0233东湖石竹细牙签' union all
select '0244招财招福(餐具组合)' union all
select '0247台灯' union all
select '0258#顺适宝钻石1号尖匙' union all
select '0260#顺适宝钻石1号叉' union all
select '0262#顺适宝钻花2号尖匙'
go


select *,
       SUBSTRING(b,patindex('%[吖-座]%',b),LEN(b)) as '提取出的中文'
from a
/*
b 提取出的中文
002A精油 精油
002三利竹纤维方巾(40*40) 三利竹纤维方巾(40*40)
0034情侣面杯 情侣面杯
0035亲一亲抱一抱杯子(老公老婆对杯) 亲一亲抱一抱杯子(老公老婆对杯)
0039卿卿我我情侣餐具 卿卿我我情侣餐具
004三利厨房用巾(3条装) 三利厨房用巾(3条装)
005-39土黄色旅行箱 土黄色旅行箱
0085I love you卫浴五件套 卫浴五件套
0085芳草地棉签 芳草地棉签
010兆升豪华型塑柄鸡杜 兆升豪华型塑柄鸡杜
0136碗(百年好合) 碗(百年好合)
01TD096龙马精神 龙马精神
01TD096龙腾虎跃 龙腾虎跃
0200A185雅兰中号直杯 雅兰中号直杯
0233东湖石竹细牙签 东湖石竹细牙签
0244招财招福(餐具组合) 招财招福(餐具组合)
0247台灯 台灯
0258#顺适宝钻石1号尖匙 顺适宝钻石1号尖匙
0260#顺适宝钻石1号叉 顺适宝钻石1号叉
0262#顺适宝钻花2号尖匙 顺适宝钻花2号尖匙
*/