Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

3 начина за връщане на низ от множество интервали в SQL Server

Когато работите с бази данни и свързаните с тях данни, понякога трябва да вмъкнете интервал, когато свързвате два низа заедно, или понякога трябва да замените знак с интервал.

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


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Вземете предишния и следващия ред от редове, избрани с условия (WHERE).

  2. Защо cast/convert от int връща звездичка

  3. Как мога да вмъкна данни в две таблици едновременно в SQL Server?

  4. SQL заявка за актуализация на горния 1 ред

  5. Как мога да изброя всички външни ключове, препращащи към дадена таблица в SQL Server?