【发布时间】:2017-02-09 02:14:19
【问题描述】:
我花了很多时间试图弄清楚这一点....寻找许多其他答案。
我在 SQL Server 中有一个表,其中有一列类型为 Char(32) NULL。表格列中的所有项目都只有char(9),但我在剩余的位置有空白(运行select ascII(right(myField, 1))时那里有一个32)。
我尝试了替换,尝试从 tempTable 更新字段尝试从 tempTbl 删除和更新.....每次我选择...字段的长度仍为 30。
有没有办法删除所有多余的空格?还是这只是 CHAR 字段始终工作的方式?
我试过了:
UPDATE table
SET myfield = rtrim(replace(myField , char(160), char(32)))
UPDATE mytable
SET myField = REPLACE(RTRIM(LTRIM(myField )), CHAR(32), '')
【问题讨论】:
-
值将始终为 32 个字符,因为您的数据类型是 CHAR(32)。这将用空格正确填充值,直到达到 32。如果您不希望填充空格,则应考虑使用 varchar(32) 代替。
标签: sql sql-server replace ascii