Когато работите с бази данни и свързаните с тях данни, понякога трябва да вмъкнете интервал, когато свързвате два низа заедно, или понякога трябва да замените знак с интервал.
И тогава понякога трябва да вмъкнете няколко интервала. Ето 3 начина за връщане на низ от множество интервали в SQL Server с помощта на T-SQL.
Опция 1:Въведете всички интервали
Най-очевидният начин е просто да въведете всяко пространство, от което се нуждаете. Като това:
SELECT 'Homer' + ' ' + 'Satriani';
Резултат:
------------------------- Homer Satriani
В този пример добавям 12 интервала между два други низа. Този метод обикновено е перфектен, когато трябва да вмъкнете само едно или две интервали. Но след като трябва да добавите, да речем, дузина или повече, тогава може да бъде по-лесно да използвате SPACE() функция.
Опция 2:Функцията SPACE()
SPACE() функцията е създадена специално за тази цел – да върне низ от повтарящи се интервали. Просто въведете функцията и предоставете аргумент, който указва колко интервала са необходими.
Така че можем да преобразуваме предишния пример в този:
SELECT 'Homer' + SPACE(12) + 'Satriani';
Резултат:
------------------------- Homer Satriani
Опция 3:Функцията REPLICATE()
Ако трябва да вмъкнете сериозно голям брой интервали (8000 или повече), тогава трябва да използвате REPLICATE() функция. Тази функция всъщност репликира всеки знак – не само интервали.
Така че можем да променим предишните примери на следното:
SELECT 'Homer' + REPLICATE(' ', 12) + 'Satriani'; Резултат:
------------------------- Homer Satriani
Можете също да използвате CHAR() функция, за да посочи изрично символа, който да се използва. Например, CHAR(32) за интервал или CHAR(160) за непрекъсваем интервал:
SELECT 'Homer' + REPLICATE(char(160), 12) + 'Satriani';
Резултат:
------------------------- Homer Satriani
Замяна на интервал с множество интервали
Така че можем да използваме някой от горните методи в REPLACE() функция за замяна на един интервал с множество интервали.
Ето пример за използване на SPACE() функция:
SELECT REPLACE('Homer Satriani', ' ', SPACE(12)); Резултат:
------------------------- Homer Satriani