Каков наилучший способ удалить все пробелы из строки в SQL Server 2008?
LTRIM(RTRIM(' a b '))
удалит все пробелы справа и слева от строки, но мне также нужно убрать пробел в середине.
sql
sql-server
string
whitespace
trim
Ananth
источник
источник
Ответы:
Просто замените это;
Изменить: просто чтобы уточнить; его глобальная замена, нет необходимости
trim()
или беспокоиться о нескольких местах для любогоchar
илиvarchar
:результат
источник
Я бы использовал ЗАМЕНУ
ЗАМЕНА
источник
Если это обновление таблицы, все, что вам нужно сделать, - запустить это обновление несколько раз, пока оно не затронет 0 строк.
источник
REPLACE()
функция :источник
Ссылка взята из этого блога:
Сначала создайте образец таблицы и данных:
Скрипт для выбора строки без лишних пробелов:
Результат:
источник
100% работает
Вы можете использовать
"column_name"
илиcolumn_name
Спасибо
Subroto
источник
select replace(replace(replace(varcharColumn,char(13),''),char(10),''),' ','')
для удаления всех новых строк и пробелов изvarchar
столбца. Если бы я использовал '\ n' и '\ r' вместо char (13) и char (10), это не сработало.t-sql заменяет http://msdn.microsoft.com/en-us/library/ms186862.aspx
заменить (val, '', '')
источник
Если в строке несколько пробелов, замена может работать некорректно. Для этого следует использовать следующую функцию.
Пример:
Вывод:
источник
Это делает трюк удаления пробелов в строках:
источник
На всякий случай, если вам нужно TRIM пробелы во всех столбцах, вы можете использовать этот сценарий, чтобы сделать это динамически:
источник
если вы хотите удалить пробелы, - и другой текст из строки, используйте следующее:
Предположим, у вас есть номер мобильного телефона в вашей таблице, например «718-378-4957» или «7183784957», и вы хотите заменить и получить номер мобильного телефона, а затем использовать следующий текст.
Результат: - 7183784957
источник
Просто подсказка: в случае, если у вас возникли проблемы с функцией замены, вам может быть задан тип данных nchar (в этом случае это фиксированная длина, и она не будет работать).
источник
Чтобы завершить все ответы, приведенные выше, в StackOverflow есть дополнительные сообщения о том, как обращаться со ВСЕМИ пробельными символами ( полный список этих символов см. На https://en.wikipedia.org/wiki/Whitespace_character ):
источник
Replace (заменить (column_name, CHAR (13), ''), CHAR (10), '')
источник
это полезно для меня:
,
источник
У меня была эта проблема сегодня, и замена / отделка сделали свое дело .. см. Ниже.
до и после :
источник
LTRIM
&RTRIM
?Чтобы удалить пробелы в строке слева и справа. Чтобы удалить пространство в середине использования
Replace
.Вы можете использовать
RTRIM()
для удаления пробелов справа иLTRIM()
для удаления пробелов слева, поэтому слева и справа пробелы удаляются следующим образом:источник
Синтаксис для замены определенных символов:
Например, в строке «HelloReplaceThingsGoing» слово «Заменить» заменяется на «Как»
источник
Функциональная версия (udf), которая удаляет пробелы, cr, lf, табуляции или настраивается.
Результат: '234asdfwefwef3x'
источник
По некоторым причинам замена работает только с одной строкой каждый раз. У меня была строка типа « Тест MSP », и я хочу оставить только один пробел.
Я использовал подход @Farhan, но с некоторыми изменениями:
Затем я запускаю свое обновление, как это
Тогда я получил такой результат: Тест MSP
Публикуйте здесь, если кому-то это нужно, как я.
Работает на: Microsoft SQL Server 2016 (SP2)
источник
Проверьте и попробуйте приведенный ниже скрипт (Unit Tested) -
источник
Кажется, что все продолжают ссылаться на одну функцию REPLACE. Или даже много вызовов функции ЗАМЕНА. Но когда у вас есть динамический вывод с неизвестным количеством пробелов, он не будет работать. Любой, кто занимается этой проблемой на регулярной основе, знает, что REPLACE удалит только один пробел, а НЕ ВСЕ, как и должно быть. И LTRIM и RTRIM, кажется, имеют ту же проблему. Оставьте это Microsoft. Вот пример вывода, который использует цикл WHILE для удаления значений ALL CHAR (32) (пробел).
Вот вывод приведенного выше кода:
Теперь, чтобы сделать шаг вперед и использовать его в выражении UPDATE или SELECT, измените его на udf.
Затем используйте функцию в операторе SELECT или INSERT:
источник