2011-10-10 51 views
1

我的表中有包含長度在31個字符和281個字符之間的任何文本的行。有意義的字符串限制

我不想在我的網頁上的表格中顯示所有這些文字,我想限制這些文字的長度只有幾個字符,以便識別給用戶。

我所做的是select left(ColumnName, 30)但這種方式在頁面上相當難看,因爲它會切斷單詞中的文本。 任何人都可以提出一個方法來打破它的角色或東西,將更好地顯示在我的網頁上?

回答

3

代碼:

declare @columnname nvarchar(281) 
set @columnname = 'Rather than display all this text in my table on my webpage, I''d like to limit this text to a few characters long so as to identify it to the user.' 

select case when charindex(' ', @columnname, 30) > 30 
    then left(@columnname, charindex(' ', @columnname, 30)) else @columnname end 

結果:

select left(ColumnName, charindex(' ', ColumnName, 30) - 1) 
from TableName 

此:處理這將是修改現有的解決方案與CHARINDEX功能,如下

Rather than display all this text 
+0

謝謝,我可以看到我將使用CHARINDEX()很多未來+1並回答 – Ortund

+0

@LoganYoung感謝您的點,我做了一個重要的變化是你應該包括所以你不會丟失數據。 –

1

的一種方式將會找到從第30個位置開始的第一個空間,並將所有內容都返回給那個。

如需更多信息,請看這裏:http://msdn.microsoft.com/en-us/library/ms186323.aspx

+0

謝謝,+1,但t-clausen.dk發佈第一,所以他得到的答案 – Ortund

+1

我試過,想象列名僅包含20個字符。這會導致它返回空白結果 –

+0

是的,絕對正確 - 好點。 –