在这种情况下,它通常意味着您的“行为不端”值(在您的情况下10)中有前导/尾随空格。
您可以通过查询找到所有这些“坏”记录
SELECT *
FROM Table1
WHERE LENGTH(last_column) <> LENGTH(TRIM(last_column))
这是SQLFiddle演示
而且您显然可以通过简单的更新来修复它们
UPDATE Table1
SET last_column = TRIM(last_column)
WHERE LENGTH(last_column) <> LENGTH(TRIM(last_column))
这是SQLFiddle演示
如果您需要处理 , 等特殊字符\r,\n则\t可以使用REPLACE()和/或TRIM(X,Y)
SELECT *
FROM Table1
WHERE LENGTH(last_column) <>
LENGTH(TRIM(REPLACE(REPLACE(REPLACE(last_column, x'0900',''), x'0D00', ''), x'0A00', '')))
修复删除这些特殊字符的值
UPDATE table1
SET last_column = TRIM(REPLACE(REPLACE(REPLACE(last_column, x'0900',''), x'0D00', ''), x'0A00', ''))
WHERE LENGTH(last_column) <>
LENGTH(TRIM(REPLACE(REPLACE(REPLACE(last_column, x'0900',''), x'0D00', ''), x'0A00', '')))
这是SQLFiddle演示