我試圖將尾隨空格插入到VARCHAR(50)列中,並且SQL插入似乎將其切斷。這裏是我的代碼:將尾隨空格插入到SQL Server VARCHAR列中
create table #temp (field varchar(10));
insert into #temp select ' ';
select LEN(field) from #temp;
不幸的是,這返回的長度爲零,意味着''被插入爲''。我需要爲此專欄插入一個空白空間 - 任何想法?
我試圖將尾隨空格插入到VARCHAR(50)列中,並且SQL插入似乎將其切斷。這裏是我的代碼:將尾隨空格插入到SQL Server VARCHAR列中
create table #temp (field varchar(10));
insert into #temp select ' ';
select LEN(field) from #temp;
不幸的是,這返回的長度爲零,意味着''被插入爲''。我需要爲此專欄插入一個空白空間 - 任何想法?
使用DATALENGTH而不是LEN,因爲LEN不處理空格。
藉此零長度字符串,例如:
SELECT LEN(' ') AS len,
DATALENGTH(' ') AS datalength
結果:
len datalength
-----------------
0 1
從http://msdn.microsoft.com/en-us/library/ms190329.aspx:
LEN返回指定字符串表達式的字符數,不包括尾部空白。
您最好還知道,SQL Server遵循ANSI/ISO SQL-92填充比較中使用的字符串,以便在比較它們之前匹配它們的長度。所以,你可能想LIKE謂詞比較使用[1]
[1]
SQL服務器如何比較字符串用尾隨空格
http://support.microsoft.com/kb/316626
LEN解釋「尾隨」空間作爲一個零長度字符串:) – Thakur 2010-10-04 21:43:23
@Aamod Thakur:零長度的字符串沒有要跟蹤的字符;) – 2010-10-04 21:44:24
lol .... +1對此; D – Thakur 2010-10-04 21:48:01