【发布时间】:2017-05-25 08:40:14
【问题描述】:
我有一个包含多个字段的 SQL 表。在任何文本字段中,我感兴趣的字符串右侧都有重复的字符,如下所示:
'AAA........' -- 不幸的是,堆栈溢出正在修剪帖子中的字符(讽刺?)所以我已将它们替换为“。”试着给人留下印象。
当我运行下面的 sql 时,隐藏的字符似乎是空格:
SELECT ASCII(RIGHT(EXCHANGE, 1)) FROM T_TMP_INS -- Returns 32
如果我运行以下命令:
SELECT REPLACE(FIELD, CHAR(32), '@') FROM TABLE1
结果是:
AAA@@@@@@@@@@@@@@@@@@@@@@@
所以我假设我可以使用更新来删除空格字符:
UPDATE TABLE1 SET FIELD = REPLACE(FIELD, CHAR(32), '')
但是更新并没有改变这个领域。
关于为什么选择识别并替换错误字符而更新语句不是,我是否有遗漏的原因?
感谢您的帮助。
【问题讨论】:
-
列是如何定义的?我想它是 CHAR 或 NCHAR 而不是 VARCHAR 或 NVARCHAR,它们没有长度信息并用空格填充内容。