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

Jak działa funkcja SPACE() w SQL Server (T-SQL)

W SQL Server możesz użyć T-SQL SPACE() funkcja do generowania określonej liczby spacji.

Może to być przydatne przy dodawaniu spacji w ciągu, na przykład podczas łączenia dwóch lub więcej ciągów.

Działa to tak, że podajesz liczbę spacji, których potrzebujesz, a zwróci ciąg zawierający dokładnie taką liczbę spacji.

Składnia

Składnia wygląda tak:

SPACE ( integer_expression )

Gdzie integer_expression jest dodatnią liczbą całkowitą, która wskazuje liczbę spacji. Jeśli jest to wartość ujemna, NULL jest zwracany.

Przykład 1 – Podstawowe użycie

Oto przykład tego, jak to działa:

SELECT SPACE(40) AS Result;

Wynik:

+------------------------------------------+
| Result                                   |
|------------------------------------------|
|                                          |
+------------------------------------------+

Jeśli nie jest jasne, dawało to 40 spacji.

Przykład 2 – Łączenie ze spacjami

Ten przykład może nieco lepiej zademonstrować efekt.

SELECT 'Keep' + SPACE(10) + 'away!' AS Result;

Wynik:

+---------------------+
| Result              |
|---------------------|
| Keep          away! |
+---------------------+

Przykład 3 – Ujemna wartość całkowita

Argument musi mieć wartość dodatnią. Jeśli jest to wartość ujemna, wynikiem jest NULL :

SELECT SPACE(-10) AS Result;

Wynik:

+----------+
| Result   |
|----------|
| NULL     |
+----------+

Przykład 4 – Przykład bazy danych

Oto prosty przykład użycia SPACE() aby wstawić spację między dwiema kolumnami bazy danych po zwróceniu z bazy danych:

USE Music;
SELECT TOP(7)
  ArtistName + SPACE(5) + AlbumName AS 'Artist and Album'
FROM Artists ar
INNER JOIN Albums al
  ON ar.ArtistId = al.ArtistId
INNER JOIN Genres g
  ON al.GenreId = g.GenreId
WHERE g.Genre = 'Rock';

Wynik:

+-------------------------------------------+
| Artist and Album                          |
|-------------------------------------------|
| Iron Maiden     Powerslave                |
| AC/DC     Powerage                        |
| Devin Townsend     Ziltoid the Omniscient |
| Devin Townsend     Casualties of Cool     |
| Devin Townsend     Epicloud               |
| Iron Maiden     Somewhere in Time         |
| Iron Maiden     Piece of Mind             |
+-------------------------------------------+

A co z 1 lub 2 spacjami?

Jest to świetna funkcja do dodawania wielu spacji, ale może również poprawić czytelność kodu po uwzględnieniu niewielkiej liczby spacji – zwłaszcza jeśli kod zawiera wiele przypadków dodawania spacji.

Używając SPACE() możesz zobaczyć, ile spacji w jednej chwili, bez konieczności ich liczenia.

Na przykład sprawdź, czy potrafisz określić, ile spacji znajduje się w następujących miejscach:

SELECT 'Keep' + '  ' + 'away!';

Twoja pierwsza reakcja może być szybkim zgadywaniem (powiedzmy „2 lub 3”), zanim przyjrzysz się trochę bliżej, aby sprawdzić. Aby mieć 100% pewności, prawdopodobnie musiałbyś najechać kursorem na spację, aby policzyć liczbę spacji.

Teraz spójrz na następujący kod:

SELECT 'Keep' + SPACE(2) + 'away!';

Nie musisz zgadywać. Możesz zobaczyć 2 wpisane bezpośrednio do kodu.

Powiedziawszy to, wartość może znajdować się w zmiennej, więc Twój kod może wyglądać mniej więcej tak:

SELECT 'Keep' + SPACE(@space_size) + 'away!';

Co oczywiście nie daje żadnej wskazówki, ile jest miejsc (bez konieczności sprawdzania). Jeśli jednak znasz już wartość @space_size jesteś gotowy.

Przykład 5 – Zmienna wielkość przestrzeni

Oto przykład, który demonstruje poprzedni punkt.

Tutaj ilość spacji jest zdefiniowana w zmiennej. W tym przypadku łatwo jest zobaczyć wartość zmiennej, ponieważ jest ona zdefiniowana w wierszu bezpośrednio poprzedzającym SPACE() funkcja (oczywiście nie zawsze tak będzie):

DECLARE @space_size int
SET @space_size = 2
SELECT 'Keep' + SPACE(@space_size) + 'away!' AS Result
GO

Wynik:

+-------------+
| Result      |
|-------------|
| Keep  away! |
+-------------+

Unicode czy więcej niż 8000 spacji?

Microsoft stwierdza, że ​​aby uwzględnić spacje w danych Unicode lub zwrócić więcej niż 8000 spacji znaków, należy użyć REPLICATE zamiast SPACE .


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Zapytanie cykliczne programu SQL Server

  2. Jak zmniejszyć moją bazę danych SQL Server?

  3. Jak odjąć 30 dni od bieżącej daty za pomocą SQL Server

  4. Znaleźć prawdziwą nazwę kolumny aliasu używanego w widoku?

  5. SQL Server Standard Edition High Availability Futures