关于这个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个字符,这使我根本无法正常取字符了。

...全文
74 4 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
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,不过如果内容里有多个空格有点麻烦

34,838

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧