| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 3021 人关注过本帖
标题:怎样将姓名与身份证号码分开插入到另外一张表?
只看楼主 加入收藏
lingchen
Rank: 1
等 级:禁止访问
帖 子:50
专家分:0
注 册:2006-5-7
结帖率:100%
收藏
 问题点数:0 回复次数:8 
怎样将姓名与身份证号码分开插入到另外一张表?
如下我有一张A表
A           B
1         张三/3213216545646
2         李四/455465456
3         李清照/87878
4         高不成/878789797
5         区阳大朋/5467987779
我要实现查询上面这张表将B列的姓名与身份证号码分开插入到新表中去,知身份证号码与姓名有/分开,请问怎样可以实现呢?要得到结果如下表:
A           B       C
1         张三     3213216545646
2         李四     455465456
3         李清照   87878
4         高不成   878789797
5         区阳大朋 5467987779
劳烦各位高手帮忙,谢谢!
搜索更多相关主题的帖子: 身份证号码 姓名 
2008-04-15 19:45
provoke
Rank: 2
来 自:广州
等 级:新手上路
威 望:5
帖 子:175
专家分:0
注 册:2007-6-14
收藏
得分:0 
insert into NewTable
select A,left(B,charindex('/',B)-1),right(B,len(B)-charindex('/',B))
from A
--或者
insert into NewTable
select A,substring(B,1,charindex('/',B)-1),substring(B,charindex('/',B)+1,len(B))----已更正
from A
----------------------------------------------------------------------
left/right 函数取字符串(列)左/右侧指定长度的子字符串;
substring 函数从指定字符串(列)的指定起止位置取子字符串;
charindex 函数获取子字串在指定字符串(列)中的位置,其中不包含子字符串时返回0;
len 函数返回字符串(列)的长度。
---------------------------------------------------------------------
掌握并灵活运用这几个字符串函数可以解决绝大部分字符串操作问题。

[[it] 本帖最后由 provoke 于 2008-4-20 19:56 编辑 [/it]]

爱我至爱,至死不渝!
2008-04-16 22:36
wonder_008
Rank: 1
等 级:新手上路
帖 子:29
专家分:0
注 册:2008-4-16
收藏
得分:0 
回复2#
insert into NewTable
select A,left(B,charindex('/',B)-1),right(B,len(B)-charindex('/',B))
from A
这种方法好像不行额。。后面的right方法不能实现把/后面的字符截取下来并存放到新表的字段中。。
而这种方法:
、insert into NewTable
select A,substring(B,1,charindex('/',B)-1),substring(B,charindex('/',B)+1,len(B)-charindex('/',B))
from A
是可以的。。
我到现在还不解,哪位可以帮忙解答下。。

[[it] 本帖最后由 wonder_008 于 2008-4-18 12:54 编辑 [/it]]
2008-04-17 22:02
lingchen
Rank: 1
等 级:禁止访问
帖 子:50
专家分:0
注 册:2006-5-7
收藏
得分:0 
非常感谢两位...!
2008-04-18 10:45
lingchen
Rank: 1
等 级:禁止访问
帖 子:50
专家分:0
注 册:2006-5-7
收藏
得分:0 
对了.select A,substring(B,1,charindex('/',B)-1),substring(B,charindex('/',B)+1)第二个SUBSTRING不是要带三个参数的吗?好像不对哦?
2008-04-18 11:09
重新做人
Rank: 1
来 自:湖北云梦
等 级:新手上路
帖 子:5
专家分:0
注 册:2008-1-12
收藏
得分:0 
很好!
很强大!

萧坚
2008-04-18 11:40
wonder_008
Rank: 1
等 级:新手上路
帖 子:29
专家分:0
注 册:2008-4-16
收藏
得分:0 
回复 5# 的帖子
一时粗心,。。是的。substring需要提供三个参数!!!
2008-04-18 12:54
provoke
Rank: 2
来 自:广州
等 级:新手上路
威 望:5
帖 子:175
专家分:0
注 册:2007-6-14
收藏
得分:0 
非常不好意思
substring(str,i,j)
函数的三个参数:
str为字符串或列名;
i为起点
j为终点
例如,substring('身份证号码/123',4,6)的返回值是'号码/',即返回第4到6位;
charindex(substr,str):返回子串substr在str中的位置,如果包含多个子串,则返回第一个子串的位置,如charindex('abc','100abcabcabc001')的返回值为3。
我在二楼给的两种方法都可以。

[[it] 本帖最后由 provoke 于 2008-4-20 20:09 编辑 [/it]]

爱我至爱,至死不渝!
2008-04-20 20:08
lff642
Rank: 1
等 级:新手上路
帖 子:91
专家分:0
注 册:2007-11-28
收藏
得分:0 
create table A (A int identity(1,1),B varchar(40))
go
create table B (A int identity(1,1),B varchar(20),C varchar(20))
go

insert into A(B) select '张三/3213216545646' union all select '李四/455465456'
union all select '李清照/87878' union all select '高不成/878789797'
union all select '区阳大朋/5467987779'



select B,left(B,charindex('/',B)-1),right(B,len(B)-charindex('/',B)) from A

insert into B (B,C)  select left(B,charindex('/',B)-1),right(B,len(B)-charindex('/',B)) from A

select * from A
select * from B
2008-04-25 16:25
快速回复:怎样将姓名与身份证号码分开插入到另外一张表?
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.014261 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved