关于这个substring 的再次说明???希望大家能解决这个问题

msony 2003-05-08 01:03:23
我导出文本时


A001中国aa 20020202
本来 中国aa 这个字段定好是10位 因为一个汉字占2个字符吗?

但导入时用substring取的时候我取10位 它就不对了因它把一个汉字算一个字符就截取 中国aa 20 这些内容

如果是三个汉字
A001中国人aa 200202 这样中间的中国人aa 导出时算是10个字符了
但导入时我截取4-10位时就是这样 中国人aa 200 它把这算成10个字符,这使我根本无法正常取字符了。

...全文
10 点赞 收藏 4
写回复
4 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
yoki 2003-05-09
你可以按照蚂蚁这种方法做
因为你的前面编号固定是4位
后面日期固定是8位
所以你的要求是这样的:
insert into 最终表
select left(field,4) as 编号,
substring(field,4,len(field)-4-8) as 姓名,
right(field,8) as 日期
from 临时表
回复
CrazyFor 2003-05-08
你的意思是中中间的十位要么10个字母,或者二个汉字6个字线,或者5个汉字.

也就是,如果有一个汉字就取9位,两个汉子就取8,是这个意思吧.

现在这样可以吗,因为前后是固定的,所以:

select substring(x,4,len(x)-8-4) from 表
回复
blactte 2003-05-08
如果你后面的字符是确定的位数,例如是生日8位yyyymmdd
可以写成如下的查询
select substring(@str,4,(len(@str)-12)
回复
ttyp 2003-05-08
用charindex判断两个空格或TAB,不过如果内容里有多个空格有点麻烦
回复
相关推荐
发帖
MS-SQL Server
创建于2007-09-28

3.3w+

社区成员

MS-SQL Server相关内容讨论专区
申请成为版主
帖子事件
创建了帖子
2003-05-08 01:03
社区公告
暂无公告