【SQL】SQL server关于字符串处理的十八般武艺

本文介绍了SQL Server中处理字符串的基础和进阶技巧,包括ascii()、char()、ltrim()、rtrim()、substring()等函数的使用,并通过实例演示如何提取地址和号码,以及处理复杂字符串问题。同时,还讨论了如何将大写中文数字转换为小写。
摘要由CSDN通过智能技术生成

前言:
要处理之前提及的,一些爬回来到数据库里面的大量!大量!大量的部分有逻辑的数据,要按照我们系统需要的格式进行处理。

先来看看是怎样的数据?又要处理成什么样数据?这里我把数据分类浓缩到一个表里,单独做展示,因为不可能拿原数据搞搞阵的啊。

在这里插入图片描述

是的,处理的数据大概如上面,要把它们分成地址和号码两列。
当然,数据量如上面那么少手动处理一下就好,但是数据有上万、上百万呢?
这里,我做了个取舍,因为还有很多其他无法完全考虑到的不规则数据,所以只对大批量可批次处理的数据进行整理,其余的就只好筛选出来后期进行手工处理了。

一、关于字符串处理函数(基础)

涉及数据处理,脑袋中首先就想到了:
left()/right()、ltrim()/rtrim()、replace()、substring()、cast()、convert()…
当然,还有很多函数,以上几个只是我平时处理数据库数据时,比较常用到的一些字符串处理函数而已。

现在就由此展开稍作整理记录。
1、字符转换函数

  • ascii()和char()
    ascii():将字符转换为对应ascii码
    char():将ascii码转换为对应字符
select ascii('c')          --c的ASCII码:99
select ascii(',')          --逗号的ASCII码:44
select ascii(99)           --99的ASCII码:57

select char(0)             --0ascii码对应的字符:
select char(128)           --128ascii码对应的字符:€
select char(129)           --129ascii码对应的字符:NULL

char()的范围为0-128,不在范围内则返回null
  • unicode()和nchar
    和ascii()、char()的用法是相似的。
    unicode():将字符转换为对应ascii码
    nchar():将ascii码转换为对应字符
select unicode('c')        --a的ASCII码:99
select unicode(',')        --逗号的ASCII码:44
select unicode(99)         --99的ASCII码:57

select nchar(0)           --0ascii码对应的字符:
select nchar(65535)         --128ascii码对应的字符:
select nchar(65536)         --129ascii码对应的字符:NULL

nchar()的范围为0-65535,不在范围内则返回null
  • lower()和upper()
    lower(字符串):将大写英文字符转换为小写
    upper(字符串):将小写英文字符转换为大写
select lower('XUEJIE')      --xuejie
select lower('九十九A')      --九十九a

select upper('xuejie')      --XUEJIE
select upper('99a')         --99A

仅限英文大小写转换
  • str()
    str(字符串,指定的长度,小数位数):把数值按指定的长度和小数位数返回
select str(3.1415926,10)          --【         3】字符串整数位小于指定长度10,左边补足9个空格
select str(233.1415926,1)         --【*】
select str(2333333,4,3)           --【****】当字符串整数位大于指定长度时,指定长度为多少,返回多少个*
select str(233.1415926,6,-3)      --【NULL】
select str(233.1415926,-6,3)      --【NULL】当指定的长度值或小数位数值为负数时,返回null
select str(3.1415926,1)           --【3】正确的使用范例
select str(233.1415926,6,3)       --【233.14】正确的使用范例

2、空格去除函数

  • ltrim()和rtrim()
    ltrim(字符串):去掉字符串左边的所有空格
    rtrim(字符串):去掉字符串右边的所有空格
select  '     处理左边空格'          --【     处理左边空格】
select  ltrim('   处理左边空格')     --【处理左边空格】
    
select  '处理右边空格        '       --【处理右边空格        】   
select  rtrim('处理右边空格     ')   --【处理右边空格】

3、从字符串中截取子字符串函数

  • left()和right()
    left(字符串,截取指定长度):从字符串左边第一位开始截取指定长的的字符串
    right(字符串,截取的长度):从字符串右边第一位开始截取指定长的的字符串
select left('233.1415926',3)       --233
select left('233.1415926',-3)      --传递到 left 函数的长度参数无效

select right('233.1415926',3)      --926
select right(
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值