Вопрос по sql-server, sql – Как проверить, что мои данные в SQL Server имеют возврат каретки и перевод строки? [Дубликат]

12

This question already has an answer here:

SQL query for a carriage return in a string and ultimately removing carriage return 9 answers

Столкнувшись с проблемой, кажется, что мои данные, хранящиеся в SQL Server, хранятся неправильно, проще говоря, как проверить, что в данных varchar есть возврат каретки и перевод строки? Я пытаюсь распечатать их, не показывает специальные символы. Спасибо

Ваш Ответ

3   ответа
4

когда мне нужно встраивать переводы строк в T-SQL, я стараюсь это делать;

DECLARE @nl CHAR(2) = CHAR(13) + CHAR(10);

.. затем использовать@nl как требуется. Естественно, это для оконечных линий Windows.

Error: User Rate Limit Exceeded@CRLF)
18

Вы можете использовать SQL Serverchar(n) а такжеcontains() функции, чтобы соответствовать на содержимое поля в вашемWHERE пункт.

carriage return: char(13)
line feed:       char(10)

Следующий SQL найдет все строки вsome_table где значенияsome_field содержать символы перевода строки и / или возврата каретки:

SELECT * FROM some_table 
WHERE CONTAINS(some_field, char(13)) OR CONTAINS(some_field, char(10)) 

Чтобы удалить возврат каретки в вашемsome_field значения, которые вы могли бы использоватьreplace() функционировать долго сchar() а такжеcontains(), SQL будет выглядеть примерно так:

UPDATE some_table 
SET some_field = REPLACE(some_field, char(13), '')
WHERE CONTAINS(some_field, char(13))

Чтобы удалить новые строки, вы можете выполнить последнюю инструкцию с помощью char (10) версии этого обновления. То, как вы это делаете, зависит от того, какие типы строк содержит ваш текст. Но в зависимости от того, где текст был вставлен / вставлен из новых строк, может быть \ r \ n или \ n, поэтому запуск обновлений для символов \ r и \ n будет более безопасным, чем при условии, что вы получаете одну версию новой строки или другой.

Обратите внимание, что если новые строки были удалены, и вы хотите сохранить их, то вам нужно решить проблему в точке входа. Вы не можете заменить или исправить то, что было удалено, поэтому вам следует сохранить исходные текстовые данные в новом столбце, который содержит исходный неизмененный текст.

Error: User Rate Limit Exceededstackoverflow.com/questions/26145996/…
SSMSError: User Rate Limit ExceededUPDATEError: User Rate Limit ExceededIncorrect syntax near 'char'.Error: User Rate Limit Exceededchar(13)Error: User Rate Limit ExceededIncorrect syntax near 'char'. Expecting STRING, TEXT_LEX, or VARIABLE
Error: User Rate Limit Exceeded
3

Char функция. УвидетьMSDN, Это поможет искать специальные символы.

Похожие вопросы