2010-10-04 44 views
7

我試圖將尾隨空格插入到VARCHAR(50)列中,並且SQL插入似乎將其切斷。這裏是我的代碼:將尾隨空格插入到SQL Server VARCHAR列中

create table #temp (field varchar(10)); 
insert into #temp select ' '; 
select LEN(field) from #temp; 

不幸的是,這返回的長度爲零,意味着''被插入爲''。我需要爲此專欄插入一個空白空間 - 任何想法?

回答

11

使用DATALENGTH而不是LEN,因爲LEN不處理空格。

藉此零長度字符串,例如:

SELECT LEN(' ') AS len, 
     DATALENGTH(' ') AS datalength 

結果:

len datalength 
----------------- 
0  1 
+0

LEN解釋「尾隨」空間作爲一個零長度字符串:) – Thakur 2010-10-04 21:43:23

+2

@Aamod Thakur:零長度的字符串沒有要跟蹤的字符;) – 2010-10-04 21:44:24

+0

lol .... +1對此; D – Thakur 2010-10-04 21:48:01

1

您最好還知道,SQL Server遵循ANSI/ISO SQL-92填充比較中使用的字符串,以便在比較它們之前匹配它們的長度。所以,你可能想LIKE謂詞比較使用[1]

[1]
SQL服務器如何比較字符串用尾隨空格
http://support.microsoft.com/kb/316626