我是一個sql noob的一點,所以請原諒。我似乎無法在任何地方找到LTRIM的使用示例。LTRIM用法與SQL服務器2005年
我在我的表中的nvarchar列,其中多個項目已前導空格 - 我假設,如果我運行這個它應該做的伎倆:
SELECT LTRIM(ColumnName)
From TableName;
這是否會得到期望的結果呢?
我是一個sql noob的一點,所以請原諒。我似乎無法在任何地方找到LTRIM的使用示例。LTRIM用法與SQL服務器2005年
我在我的表中的nvarchar列,其中多個項目已前導空格 - 我假設,如果我運行這個它應該做的伎倆:
SELECT LTRIM(ColumnName)
From TableName;
這是否會得到期望的結果呢?
不,它會修剪前導空格,但不是全部空格(例如回車)。
編輯 看來你正在尋找一個UPDATE
查詢,將刪除前導和尾隨的空白。
如果您只意味着「正常」的空間只有使用
UPDATE TableName
SET ColumnName = LTRIM(RTRIM(ColumnName))
對於所有的空格,這應該這樣做(從the comments這裏)。先備份你的數據!
UPDATE TableName
SET ColumnName =
SUBSTRING(
ColumnName,
PATINDEX('%[^ ' + char(09) + char(10) + char(13) + char(20) + ']%',
ColumnName),
LEN(ColumnName) - PATINDEX('%[^ ' + char(09) + char(10) + char(13) + char(20) + ']%'
, ColumnName) -
PATINDEX('%[^ ' + char(09) + char(10) + char(13) + char(20) + ']%',
REVERSE(ColumnName)) + 2)
你運行它找出?這只是一個選擇,它不會炸燬你的數據庫。但是,是的。
Select LTRIM(myColumn) myColumn
From myTable
應該返回myColumn
值與刪除任何前導空白。請注意,這只是領先的空白。
編輯來更新列,與上述情況,你會怎麼做:
Update myTable
Set myColumn = LTRIM(myColumn)
From myTable
你的榜樣將努力消除前導空格。這隻會從數據庫中選擇它。如果你需要在你的表實際更改數據,你需要寫一個UPDATE語句是這樣的:
UPDATE TableName
SET ColumnName = LTRIM(ColumnName)
如果您需要從右側刪除空格,你可以使用RTRIM。
這裏的字符串函數在SQL Server 2005中的列表,我總是指: http://msdn.microsoft.com/en-us/library/ms181984(v=SQL.90).aspx
謝謝,那個鏈接會派上用場。 – Chin 2010-08-03 22:27:03
編輯:我所希望實現的是更新記錄。以上只是選擇和修剪。選擇,修剪和更新相應的是我在找什麼。 – Chin 2010-08-03 22:17:56
鏈接:http://msdn.microsoft.com/en-us/library/ms177827%28SQL.90%29.aspx – 2010-08-03 22:20:57
相關:http://stackoverflow.com/questions/1864838/remove-trailing-empty-space在字段內容 – 2010-08-03 22:23:22