Если ваш сервер базы данных находится в той же локальной сети, что и ваш веб-сервер, я думаю, что, вероятно, я бы выбрал все поле, поскольку вы обращаетесь к нему вообще. Вам все равно придется выполнить поиск, чтобы получить доступ к любым данным в этом поле, поэтому sql с точки зрения производительности для поиска данных не является проблемой. Единственным недостатком получения всего поля будет объем данных, передаваемых между серверами. Таким образом: если они находятся в одной сети, я бы сказал, что это определенно дешевле, чем подделка каждой записи во время выбора. Это также дает вам возможность кэшировать ваш ответ, так что вам не придется снова обращаться к базе данных, когда пользователь хочет увидеть полную версию текста.
Но, чтобы ответить на ваш вопрос, нижеследующее, вероятно, должно это сделать, хотя это выглядит довольно липко
SELECT Name, Category, left(convert(varchar(8000), Review), charindex('\n', convert(varchar(8000), Review), charindex('\n', convert(varchar(8000), Review), charindex('\n', convert(varchar(8000), Review), charindex('\n', convert(varchar(8000), Review))+1)+1)+1)-1) FROM ReviewTable
... хм, да, правда, я бы рассмотрел мой первый абзац