Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

3 sposoby na zwrócenie ciągu wielu spacji w SQL Server

Podczas pracy z bazami danych i powiązanymi danymi czasami musisz wstawić spację podczas łączenia dwóch łańcuchów, a czasami musisz zastąpić znak spacją.

A potem czasami trzeba wstawić wiele spacji. Oto 3 sposoby na zwrócenie ciągu wielu spacji w SQL Server przy użyciu T-SQL.

Opcja 1:wpisz wszystkie spacje

Najbardziej oczywistym sposobem jest po prostu wpisanie każdej potrzebnej przestrzeni. Tak:

SELECT 'Homer' + '            ' + 'Satriani';

Wynik:

-------------------------
Homer            Satriani

W tym przykładzie dodaję 12 spacji między dwoma innymi ciągami. Ta metoda jest zwykle idealna, gdy wystarczy wstawić jedną lub dwie spacje. Ale kiedy musisz dodać powiedzmy tuzin lub więcej, łatwiej będzie użyć SPACE() funkcja.

Opcja 2:Funkcja SPACJA()

SPACE() Specjalnie w tym celu zbudowano funkcję – zwracającą ciąg powtarzających się spacji. Po prostu wpisz funkcję i podaj argument określający, ile spacji jest wymaganych.

Możemy więc przekonwertować poprzedni przykład na ten:

SELECT 'Homer' + SPACE(12) + 'Satriani';

Wynik:

-------------------------
Homer            Satriani

Opcja 3:Funkcja REPLICATE()

Jeśli potrzebujesz wstawić bardzo dużą liczbę spacji (8000 lub więcej), powinieneś użyć REPLICATE() funkcjonować. Ta funkcja faktycznie replikuje dowolny znak – nie tylko spacje.

Możemy więc zmienić poprzednie przykłady na następujące:

SELECT 'Homer' + REPLICATE(' ', 12) + 'Satriani';

Wynik:

-------------------------
Homer            Satriani

Możesz także użyć CHAR() funkcja do jawnego określenia znaku do użycia. Na przykład CHAR(32) dla spacji lub CHAR(160) dla niełamliwej przestrzeni:

SELECT 'Homer' + REPLICATE(char(160), 12) + 'Satriani';

Wynik:

-------------------------
Homer            Satriani

Zastępowanie spacji wieloma spacjami

Możemy więc użyć dowolnej z powyższych metod w ramach REPLACE() funkcja zastępująca pojedynczą spację wieloma spacjami.

Oto przykład użycia SPACE() funkcja:

SELECT REPLACE('Homer Satriani', ' ', SPACE(12));

Wynik:

-------------------------
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. Porady Brenta Ozara i Pinala Dave dotyczące wydajności SQL Server

  2. Używanie DBCC CLONEDATABASE do generowania schematu i tylko kopii statystyk bazy danych użytkownika w programie SQL Server 2014 z dodatkiem SP2

  3. Uzyskaj znak między pierwszymi 2 znakami specjalnymi w SQL

  4. Zapytanie aktualizujące SQL za pomocą złączeń

  5. Czy mogę używać wielu kursorów na jednym połączeniu z pyodbc i MS SQL Server?