2012-08-23 133 views
1

的我有一些數據在這裏,是這樣的:SQL擺脫多餘的空格

'US  ' -- (5 spaces) 

,我有超過300次的記錄是這樣,有沒有擺脫那些5位的方法嗎?

+0

您正在使用哪個數據庫? – EthanB

回答

3

您可以使用RTRIMLTRIM刪除尾隨或前導空格。

如果你只是選擇了記錄:

SELECT RTRIM(State) AS State 
FROM YourTable 

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

UPDATE YourTable 
SET State = RTRIM(State) 
+0

所以'更新yourtable設置狀態= RTRIM(狀態)'它會拿出額外的空間和更新它已經有什麼減去空格? – user979331

+1

正確。在你的例子中,它基本上轉化爲'UPDATE YourTable SET State = RTRIM('US')'它變成'UPDATE YourTable SET State ='US''如果你有多個記錄,每個記錄都會被更新爲' RTRIM'ed。 – LittleBobbyTables

+0

假如我有一條記錄說「美國」,另一條記錄「加拿大」會讓另一條記錄閃爍嗎?我希望它不是 – user979331

0

大多數數據庫支持RTRIM()或TRIM()功能。

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

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

(替換功能可以被稱爲東西在不同的數據庫不同。)

另一種可能性是,基礎類型爲CHAR,而不是VARCHAR。在您的示例中,該列可能會被聲明爲char(7)而不是varchar(7)。如果是這種情況,那麼您不能刪除空格,因爲該值被填充爲七個字符。

在這種情況下最好的做法是將定義更改爲varchar(7)。

+0

'一些隨機文本'會變成'somerandomtext' –

0

使用RTRIM刪除字符串後的任何尾隨空白。

SELECT RTRIM(COL1)FROM TBL1

此外,還可以使用LTRIM,以消除任何前導空白。

據我所知,這個函數適用於SQL Server,Oracle,MySQL和PL/SQL。