понедельник, 29 июля 2013 г.

Как в строке удалить лишние, повторяющиеся пробелы


-- Объявим переменную @STR
DECLARE @STR
     VARCHAR(100) --Тип данных: Строка переменной длины,
                   --максимум 100 символов

-- Присваиваем переменной значение строки с повторяющимися пробелами
SET @STR = 'Microsoft         Certified      Solutions  Associate   (MCSA):    SQL   Server  2012'
SELECT
     @STR AS "Исходный текст"


-- Удалим повторяющиеся пробелы
-- Производим замену везде функцией REPLACE

WHILE ( -- Пока CHARINDEX возвращает позицию больше нуля выполнятся то, что в цикле
         CHARINDEX( -- Возвращает позицию набора символов в другом наборе
                   '  ' -- Что ищем (два пробела)
                   , @STR -- Где ищем (наша строка)
         ) > 0    -- Ноль означает, что набор символов не найден (выход из цикла)
     )
BEGIN -- Начало цикла
     SET @STR = REPLACE (
                                 @STR -- Строка
                                 ,'  ' -- Что заменяем (два пробела)
                                 , ' ' -- Чем заменяем (один пробел)
                            )
END -- Конец цикла
SELECT
     @STR AS "Результат"