有意义的字符串限制

时间:2011-10-10 12:07:30

标签: sql vb.net string text

我的表中有行包含31个字符到281个字符之间的文本。

我不想在我的网页上的表格中显示所有这些文字,而是希望将此文字限制为几个字符,以便向用户标识。

我所做的是select left(ColumnName, 30),但这种方式在页面上相当丑陋,因为它会切断文字中间的文字。 任何人都可以建议一种方法来打破角色或在我的页面上显示得更好的东西吗?

2 个答案:

答案 0 :(得分: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

结果:

Rather than display all this text 

答案 1 :(得分:1)

处理它的一种方法是使用CHARINDEX函数修改现有解决方案,如下所示:

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

这将找到从第30位开始的第一个空格,并返回该位置左侧的所有内容。

有关详情,请参阅此处:http://msdn.microsoft.com/en-us/library/ms186323.aspx