首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

oracle 真么删除里面的汉字?解决方案

2012-04-14 
oracle 真么删除里面的汉字?oracle一列里面包含汉字、字母、数字,我想通过语句来删除某项,语句怎么写的?1、删

oracle 真么删除里面的汉字?
oracle 

一列里面包含汉字、字母、数字,我想通过语句来删除某项,语句怎么写的?
1、删除里面的汉字,其他保留。

2、删除里面的字母,其他保留。

3、删除里卖年的数字,其他保留。

这三个语句分别是怎么写的,求解!

[解决办法]
建议你去oracle版问.

如果是sql server,可参考如下:

SQL code
create table tb(area varchar(20))insert into tb values('100平方米') insert into tb values('120平方米') insert into tb values('70-80平方米') go--方法一[吖-咗]select left(area,PATINDEX('%[吖-做]%',area)-1) area from tb/*area                 -------------------- 10012070-80(所影响的行数为 3 行)*/--方法二--建立如下函数(非a-z A-Z 0-9 - , 以及中文字符之外的字符删除)gocreate function getnewstr(@oldstr varchar(100)) returns varchar(100)as  begin    declare @i int    set @i = 1    while @i <= len(@oldstr)    if substring(@oldstr, @i, 1) like('[^a-z,A-Z,0-9,-]')       set @oldstr = replace(@oldstr, substring(@oldstr, @i, 1), '')    else       set @i = @i +1    return @oldstrendgoselect area = dbo.getnewstr(area) from tb where area like('%[^a-z,A-Z,0-9,-]%')/*area                 -------------------- 10012070-80(所影响的行数为 3 行)*/drop table tbdrop function dbo.getnewstr 

热点排行
Bad Request.