我有一个临时表,我试图消除特定列中的所有空格。但是,我的替换根本不起作用。这是我的代码
IF OBJECT_ID('tempdb..#attempt1temptable') IS NOT NULL
BEGIN
DROP TABLE #attempt1temptable
END
GO
CREATE TABLE #attempt1temptable
(
temp_description varchar(MAX),
temp_definition varchar(MAX)
)
INSERT INTO #attempt1temptable
SELECT graphic_description, graphic_definition
FROM graphic
UPDATE #attempt1temptable SET temp_description=REPLACE(temp_description, ' ', '')
UPDATE #attempt1temptable SET temp_description=REPLACE(temp_description, char(160), '')
--I have no idea why it won't update correctly here
select temp_description, LEN(temp_description) from #attempt1temptable
插入并选择按预期工作但是它没有更新temp_description没有空格。查询的结果给了我temp_description而没有任何改变。我在这里做错了什么?
答案 0 :(得分:2)
尝试替换其他一些空格字符:
select replace(replace(replace(replace(
description
,char(9)/*tab*/,'')
,char(10)/*newline*/,'')
,char(13)/*carriage return*/,'')
,char(32)/*space*/,'')
from #attemp1temptable
答案 1 :(得分:0)
您可能正在处理除space
之外的其他字符。例如,您可以处理tab
我建议复制并粘贴字符以从实际数据中删除到替换语句中,以确保您拥有正确的字符。
此外,您似乎使用LEN
来验证数据是否已更新。但请注意,LEN
并不会将尾随空格计为字符。因此,即使数据已更新,计数也不会改变