暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

sqlserver字段数据中制表符tab、空格、回车符等特殊字符替换

云自由 2020-09-24
1418

在计算机中,所有的数据在存储和运算时都要使用二进制数表示,包括52个字母(包括大写)、数字、常用的符号(例如*、#、@等)。具体用哪些二进制数字表示哪个符号,大家就必须使用相同的编码规则,美国有关的标准化组织就出台了ASCII编码(美国信息交换标准代码)。

SELECT CHAR(36);    --显示的结果为$

SQL中的替换函数replace()的语法格式如下:

REPLACE ( string_expression , string_pattern , string_replacement )
  • string_expression 要搜索的字符串表达式。

  • string_pattern 是要查找的子字符串,不能是空字符串 ('')。

  • string_replacement 替换字符串。

如何利用ASCII编码替换空格等特殊字符呢?

  --去掉空格
 UPDATE [dbo].[线上培训合格人员] set 身份证号=REPLACE(身份证号,char(32),'')
 --去掉TAB
 UPDATE [dbo].[线上培训合格人员] set 身份证号=REPLACE(身份证号,char(32),'')

ASCII中十进制编码 (对应)缩写字符(或功能/解释)如下:

0 NUL(null) 空字符

1 SOH(start of headline) 标题开始

2 STX (start of text) 正文开始

3 ETX(end of text) 正文结束

4 EOT (end of transmission) 传输结束

5 ENQ (enquiry) 请求

6 ACK (acknowledge) 收到通知

7 BEL (bell) 响铃

8 BS (backspace) 退格

9 HT (horizontal tab) 水平制表符

10 LF (NL line feed, new line) 换行键

11 VT (vertical tab) 垂直制表符

12 FF (NP form feed, new page) 换页键

13 CR (carriage return) 回车键

14 SO (shift out) 不用切换

15 SI (shift in) 启用切换

16 DLE (data link escape) 数据链路转义

17 DC1 (device control 1) 设备控制1

18 DC2 (device control 2) 设备控制2

19 DC3 (device control 3) 设备控制3

20 DC4 (device control 4) 设备控制4

21 NAK (negative acknowledge) 拒绝接收

22 SYN (synchronous idle) 同步空闲

23 ETB (end of trans. block) 传输块结束

24 CAN (cancel) 取消

25 EM (end of medium) 介质中断

26 SUB (substitute) 替补

27 ESC (escape) 换码(溢出)

28 FS (file separator) 文件分割符

29 GS (group separator) 分组符

30 RS (record separator) 记录分离符

31 US (unit separator) 单元分隔符

32 space 空格


ASCII值控制字符ASCII值控制字符ASCII值控制字符ASCII值控制字符
0NUL32(space)64@96
1SOH33!65A97a
2STX34"66B98b
3ETX35#67C99c
4EOT36$68D100d
5ENQ37%69E101e
6ACK38&70F102f
7BEL39,71G103g
8BS40(72H104h
9HT41)73I105i
10LF42*74J106j
11VT43+75K107k
12FF44,76L108l
13CR45-77M109m
14SO46.78N110n
15SI47/79O111o
16DLE48080P112p
17DCI49181Q113q
18DC250282R114r
19DC351383S115s
20DC452484T116t
21NAK53585U117u
22SYN54686V118v
23TB55787W119w
24CAN56888X120x
25EM57989Y121y
26SUB58:90Z122z
27ESC59;91[123{
28FS60<92/124|
29GS61=93]125}
30RS62>94^126`
31US63?95_127DEL

替换字段中的TAB制表符char(9)、换行符char(10)、回车键char(13)、空格char(32)的示例代码如下:

UPDATE [ dbo ].[线上培训合格人员]
SET 身份证号 = REPLACE (
REPLACE (
REPLACE (
REPLACE ( REPLACE ( 身份证号, CHAR ( 10 ), '' ), CHAR ( 13 ), '' ),
CHAR ( 10 ) + CHAR ( 13 ),
''
),
CHAR ( 9 ),
''
),
CHAR ( 32 ),
''
)



文章转载自云自由,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论