Подтвердить что ты не робот

SQL-запрос для возврата каретки в строку и, в конечном счете, удаление возврата каретки

SQL-запрос для возврата каретки в строку и, в конечном счете, удаление возврата каретки

У меня есть некоторые данные в таблице, и есть некоторые возвращения каретки в местах, где я их не хочу. Я пытаюсь написать запрос, чтобы получить все строки, которые содержат возврат каретки.

Я пробовал это

select * from Parameters
where Name LIKE '%"\n" %'

Кроме

select * from Parameters
where Name LIKE '\r'

Оба являются действительными SQL, но не возвращают то, что я ищу. Нужно ли использовать команду Like или другую команду? Как получить возврат каретки в запрос?

Возврат каретки не обязательно находится в конце строки (может быть посередине).

4b9b3361

Ответ 1

это будет медленным, но если это одно время, попробуйте...

select * from parameters where name like '%'+char(13)+'%' or name like '%'+char(10)+'%'

Обратите внимание, что оператор конкатенации строки ANSI SQL равен "||", поэтому может потребоваться:

select * from parameters where name like '%' || char(13) || '%' or name like '%' || char(10) || '%'

Ответ 2

Основной вопрос заключался в том, чтобы удалить CR/LF. Использование функций replace и char работает для меня:

Select replace(replace(Name,char(10),''),char(13),'')

Для Postgres или Oracle SQL вместо этого используйте функцию CHR:

       replace(replace(Name,CHR(10),''),CHR(13),'')

Ответ 3

В SQL Server я бы использовал

where charindex(char(13), name)<>0

Ответ 4

Вы также можете использовать регулярные выражения:

SELECT * FROM Parameters WHERE Name REGEXP '\n';

Ответ 5

Это работает: выберите * из таблицы, где столбец типа '% (нажмите enter)%'

Игнорируйте скобки и нажмите enter, чтобы ввести новую строку.

Ответ 6

Оставьте двойные кавычки из вашего первого запроса.

... LIKE '%\n%' 

Ответ 7

Мне кажется, что-то вроде этого работает:

SELECT * FROM Parameters WHERE Name LIKE '%\n%'

Ответ 8

Это также работает

SELECT TRANSLATE(STRING_WITH_NL_CR, CHAR(10) || CHAR(13), '  ') FROM DUAL;