Когато работите с бази данни и свързаните с тях данни, понякога трябва да вмъкнете интервал, когато свързвате два низа заедно, или понякога трябва да замените знак с интервал.
И тогава понякога трябва да вмъкнете няколко интервала. Ето 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