SQL摆脱了额外的空间

时间:2012-08-23 17:14:49

标签: sql

我在这里有一些数据如下:

'US     ' -- (5 spaces) 

我有超过300条这样的记录,有没有办法摆脱这5个空格?

3 个答案:

答案 0 :(得分:3)

您可以使用RTRIMLTRIM删除尾随或前导空格。

如果您只是选择记录:

SELECT RTRIM(State) AS State
FROM YourTable

如果要更新表以删除空格:

UPDATE YourTable 
SET State = RTRIM(State)

答案 1 :(得分:0)

大多数数据库都支持RTRIM()或TRIM()函数。

您也可以用空字符串替换空格:

select replace('abcde   ', ' ', '')

(在不同的数据库中,替换函数可能被称为不同的东西。)

另一种可能性是底层类型是CHAR而不是VARCHAR。在您的示例中,该列可能会声明为char(7)而不是varchar(7)。如果是这种情况,则无法删除空格,因为该值将填充为七个字符。

在这种情况下,最好的做法是将定义更改为varchar(7)。

答案 2 :(得分:0)

使用RTRIM删除字符串后的任何尾随空格。

SELECT RTRIM(col1)FROM tbl1

此外,您可以使用LTRIM删除任何前导空格。

据我所知,此功能适用于SQL Server,Oracle,MySQL和PL / SQL。