制表人也是省事,把这些信息放在一列中,现在需要取红框圈着的数据,有一百多行,操作了十多行,实在是蛋疼,还是用sql'搞吧
首先把excel表导入sqlserver中
//表名为“疑点详细说明”,22为姓名+身份证号的长度
select substring(疑点详细说明,charindex('】【',疑点详细说明)+2,22)
from [学前教育].[dbo].[C_08_10_非贫困人员违规领取低保救助金情况]
得到结果,但是明显是不完美的,因为姓名如果是两个字,截取的有】
--------------------------------------------------------------我是分割线----------------------------------------------------------------------------------------------------
在网上找了一下,终于找到完美的方法了
1,通过创建视图,将初步截取的信息保存下来
//创建视图,将初步截取的信息保存下来
CREATE VIEW view1 AS
select substring(疑点详细说明,charindex('】【',疑点详细说明)+2,23) as name
from [学前教育].[dbo].[C_08_10_非贫困人员违规领取低保救助金情况]
select * from view1
得到结果
2,进行详细截取
view1是保存数据的视图,name是视图中的列名
“substring(name,1,charindex('/',name)-1) 姓名 ” 截取姓名并将列名设置为“姓名”
SELECT substring(name,1,charindex('/',name)-1) 姓名,substring(name,charindex('/',name)+1,charindex('】',name)
-charindex('/',name)-1) 身份证号 FROM view1;
得到结果,完成
例句:SELECT substring(列名,1,2) 姓名,substring(列名,3,4) 身份证号 FROM view1;
charindex('/',列名) 该列中/所在位置的坐标