如何在SQL插入查询中修剪空白?

时间:2019-02-13 17:47:36

标签: sql sql-server tsql

在向表中插入记录的查询下面没有修剪空白空间。

Insert into MyTable (MyColumn)
select RTRIM(LTRIM(rowvalue)) from #temptable

或者,如果我分配给变量并重新插入,则会修剪空白。

Declare @var varchar(max)
set @var = (    select RTRIM(LTRIM(rowvalue)) from #temptable  )
go
Insert into MyTable (MyColumn) values ( @var)

除了分配外,还有一种方法可以修剪Insert查询中的空白。

1 个答案:

答案 0 :(得分:0)

可能是您的字段中包含高ASCII字符。尝试此操作,看看结果是否返回,它检查该字段是否包含1-31到127-255之间的字符。

-- See if it's in the low ASCII range
SELECT *      
FROM #temp      
WHERE rowvalue LIKE '%[' + CHAR(1)+ '-' +CHAR(31)+']%'  COLLATE Latin1_General_100_BIN2

-- See if it's in the high ASCII range
SELECT *      
FROM #temp      
WHERE rowvalue LIKE '%[' + CHAR(127)+ '-' +CHAR(255)+']%'  COLLATE Latin1_General_100_BIN2

如果记录返回,则可能需要替换字符才能将其删除。参见here