Преобразование "\ n" в реальный символ новой строки в SQL Server - PullRequest
7 голосов
/ 12 января 2010

У меня есть несколько полей varchar (255) и varchar (max) в таблице в MS SQL Server.

Обычно это отформатированные сообщения (электронная почта и др.). Большинство полей имеют действительные символы "\ n", но на самом деле нужны символы новой строки. Мне не нужно беспокоиться о новых данных в будущем, но я не знаю, как исправить то, что в настоящее время находится в БД.

Я в основном программист, а не парень по SQL / DB, поэтому любые советы о том, как это исправить, или о ресурсах, которые помогут мне начать работу, будут оценены.

Ответы [ 3 ]

13 голосов
/ 12 января 2010

это должно сработать

UPDATE
    <tablename> 
SET
    <fieldname> = replace(<fieldname>,'\n',char(13)+char(10)),
    <otherfieldname> = replace(< otherfieldname >,'\n',char(13)+char(10))
2 голосов
/ 12 января 2010

Это:

print replace('Line 1\nLine 2','\n',char(13))

даст:

Line 1
Line 2
1 голос
/ 12 января 2010

Я полагаю, вы ищете символ (13) ...

select 'hi' + char(13) + 'there'

Вы можете заменить \ n в операторах выбора ...

select replace('hi\nthere', '\n', char(13))

Или вы можете сделать обновление ...

update table set str = replace(str, '\n', char(13))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...