Excel 2010 SQL应用043 分离联系电话的区号与电话号码

目录

源数据表

解决方案

LEFT函数

LEFT函数与LEFTB函数的区别


源数据表

名称 地址 联系电话 
武威地区急救中心甘肃武威市南大街37号0935-2290755
柳州市医疗急救指挥中心广西省柳州市广场路8号0772-2810222
福建省急救中心福建省福州市东街134号0591-755768-9030
镇江市急救中心江苏省镇江市黄山路65号0511-5223421
青海省急救中心(青海人民医院内)青海省西宁市城东区共和路2号0971-8177911
成都市急救指挥中心成都市人民南路一段122号028-6110915
南阳市急救中心(市中心医院)河南省南阳市工农路312号0377-3200033
茂名市人民医院急救中心茂名市为民路101号0668-2922620
广州市急救医疗指挥中心广州市麓苑路31号020-83594877
自贡市急救站四川省自贡市大安区红和路0813-2207046
马安山市120医疗急救指挥中心安徽省马安山市湖南路3号0555-2326114
甘肃省酒泉地区医疗急救中心甘肃省酒泉市西大街72号0937-2013344
泉州市急救中心福建省泉州市丰泽区祥远路0595-2107832
丹东市救护站120辽宁丹东市锦江大街20号0415-2170120
迪庆州医疗急救中心(州医院)云南省中甸县建塘镇和平路8号0887-8230480
嘉兴市急救站浙江省嘉兴市急救站0573-2713714
江西省吉安市急救中心江西省吉安市井冈山大道54号0796-8224718
安徽省六安市人民医院安徽六安市皖西西路21号0564-3338481
焦作市120急救指挥中心河南省焦作市和平中街公费医院内0391-2936224
靖远120急救中心甘肃靖远县新城村12号0943-6128120
泸州市急救中心(泸州市人民医院)四川省泸州市忠孝路61号0830-2393247
延安市急救指挥中心延安市市区北关0911-2123398
营口市急救中心辽宁营口市站前区新立街0417-3841990
浙江省杭州市急救中心浙江省杭州市孝女路6号0571-87035535
洛阳市急救中心河南省洛阳市中州中路288号0379-3892180
毫州市人民医院(急诊科)安徽毫州市薛家巷0558-5522571
定西地区急救中心甘肃省定西县镇龙路149号0932-8212129
七台河市120急救中心黑龙江省七台河市桃山区1464-8289120
常州市红十字急救中心江苏常州木梳路26号0519-6969629
内蒙古自治区红十字急救输送中心呼和浩特市新华大街90号0471-6296120
保定市急救中心保定市新北街39号0312-2026016
曲靖市急救中心云南省曲靖市麒麟区市第一人民医院内0874-3315092
无锡市红十字救护站无锡市中山路30号0510-2725226
苏州市第四人民医院急救站江苏苏州市白塔西路16号0512-7298089
山西省原平市第一人民医院急救中心山西省原平市前进西街181号0350-8223088

    上表是全国急救中心地址电话一览表,其中“联系电话”字段中包含了长途区号和电话号码两部分内容,现在需要将“联系电话”字段中的区号与电话分为两列显示,将“联系电话”分成“长途区号”和“电话号码”两个字段。

解决方案

SELECT 名称,地址,
       LEFT(联系电话,INSTR(联系电话,'-')-1) AS 长途区号,
       RIGHT(联系电话,LEN(联系电话)-INSTR(联系电话,'-')) AS 电话号码
FROM [sheet1$]

  本例“联系电话”字段中长途区号的字符长度不一致,分离依据是长途区号与电话号码中间的分隔符号“-”,因此,需要先通过INSTR函数返回分隔符号“-”在“联系电话”字段中首次出现的位置,然后利用LEFT函数提取联系电话的区号。  

LEFT函数

LEFT函数的作用是截取字符串最左边的子字符串,其语法如下:

LEFT(string,length)

    其中,第一个参数string为指定的字符串,如果string包含Null,则返回NullU。第二个参数length用于指定返回的字符数,如果该参数为0,则返回零长度字符串("");如果该参数大
于或等于string的字符数量,将返回整个字符串。
    例如,要截取字符串“ABCDE”最左边的三个字符“ABC”,可采取如下公式:

LEFT("ABCDE",3)

    本例中,提取长途区号的公式为:  

LEFT(联系电话,INSTR(联系电话,'-')-1) AS 长途区号

    其中,INSTR(联系电话,'-')返回“联系电话”字段中首次出现分隔符“-”的位置。通过-1修正后,INSTR(联系电话,'-')-1即为需提取长途区号的长度,最后通过LEFT(联系电话,INSTR(联系电话,'-')-1)返回“联系电话”字段中的区号部分。

LEFT函数与LEFTB函数的区别

    LEFT函数的作用是截取字符串最左侧指定长度的子字符串,该函数按照指定的字符数量截取。而LEFTB函数用于指定字节数量的截取。本例中如下语句:      

SELECT 名称,LEFT(名称,2) AS S1,LEFTB(名称,2) AS S2
FROM [sheet1$]

    S1字段将返回两个字符长度的子字符串。S2字段将返回两个字节长度的子字符串。
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ngbshzhn

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值