数据库中的char类型和sql server的trim函数

问题引入

将每个同学的班级号前面/后面加上“T”

在每个同学的班级号的前面加上‘T’

update student set classnum='T'+classnum;

在每个同学的班级号后面加上'T'

update student set classnum=classnum+'T';

这时会发现sql server 报错:

消息 2628,级别 16,状态 1,第 330 行
字符串或二进制数据将在表“master.dbo.Student”,列“classnum”中被截断。截断值:“T001T     ”。
语句已终止。

引入char类型的定义:

char是定长的,比如设置数据类型为char(10),输入’ABC’,后面会有7个空字符,当读取数据时,就要用到trim()。而当字符数超出规定的数据类型长度,则截取超出的字符。

解决方式:

使用函数ltrim或rtrim

  • LTRIM(字串): 将所有字串起头的空白移除。
  • RTRIM(字串): 将所有字串结尾的空白移除。
update student set classnum=rtrim(classnum)+'T';

 

posted @ 2021-04-04 14:21  栎眠尔  阅读(529)  评论(0编辑  收藏  举报