Значимое ограничение строки - PullRequest
1 голос
/ 10 октября 2011

В моей таблице есть строки, содержащие текст длиной от 31 до 281 символа.

Вместо того, чтобы отображать весь этот текст в моей таблице на моей веб-странице, я хотел бы ограничить этот текст несколькими символами, чтобы его можно было идентифицировать для пользователя.

То, что я сделал, это select left(ColumnName, 30), но этот путь довольно уродлив на странице, так как обрезает текст в середине слов. Может кто-нибудь предложить способ разбить его на персонажа или что-то, что будет лучше отображаться на моей странице?

Ответы [ 2 ]

3 голосов
/ 10 октября 2011

Код:

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 голос
/ 10 октября 2011

Один из способов справиться с этим - изменить существующее решение с помощью функции CHARINDEX, как показано ниже:

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

Это найдет первый пробел, начиная с позиции 30, и вернет все слева от этого.

Подробнее см. Здесь: http://msdn.microsoft.com/en-us/library/ms186323.aspx

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...