数据库中的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';