当前位置:数据库 > SQLServer >>

sqlserver2005中,我有一列是姓名和身份证号码放在一起的,身份证号码有的是15位有的是18位,如何分开来?

就是如何用sql语句将文字数字在同一列的分成两列区分开来?
追问:是姓名在前面的,怎么截取啊?
答案:LOOK:
#3 临时表 n 列名
select '令狐冲111101199909092133' into #3
select substring(n,1,patindex('%[^啊-做]%',n)-1),stuff(n,1,patindex('%[^啊-做]%',n)-1,'') from #3
其他:create table  tbInfo ( TbName varchar(20), -- 姓名
                       IdCard varchar(20), --身份证
                       )
    
 select * from tbInfo where len(IdCard) = 15
 select * from tbInfo where len(IdCard) = 18 姓名在前号码在后吗?
那就判断第一个数字的位置,然后截取字符串 

上一个:sqlserver 在sql语句里字符串用什么拼接。我知道oracle是用 || 。
下一个:Oracle中的如何对应Sqlserver的UNION ALL?

Oracle
MySQL
Access
SQLServer
DB2
Excel
SQLite
SYBASE
Postgres
如果你遇到数据库难题:
请访问www.zzzyk.com 试试
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,