【发布时间】:2011-10-10 12:07:29
【问题描述】:
我的表格中有一些行包含长度介于 31 到 281 个字符之间的文本。
我不想在我的网页上的表格中显示所有这些文本,我想将此文本限制为几个字符,以便用户识别它。
我所做的是select left(ColumnName, 30),但这种方式在页面上相当难看,因为它会切断单词中间的文本。
任何人都可以建议一种方法来打破它的字符或在我的页面上显示更好的东西吗?
【问题讨论】:
我的表格中有一些行包含长度介于 31 到 281 个字符之间的文本。
我不想在我的网页上的表格中显示所有这些文本,我想将此文本限制为几个字符,以便用户识别它。
我所做的是select left(ColumnName, 30),但这种方式在页面上相当难看,因为它会切断单词中间的文本。
任何人都可以建议一种方法来打破它的字符或在我的页面上显示更好的东西吗?
【问题讨论】:
代码:
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
【讨论】:
处理它的一种方法是使用CHARINDEX 函数修改您现有的解决方案,如下所示:
select left(ColumnName, charindex(' ', ColumnName, 30) - 1)
from TableName
这将找到从位置 30 开始的第一个空格,并将其左侧的所有内容返回。
更多信息,请看这里:http://msdn.microsoft.com/en-us/library/ms186323.aspx
【讨论】: