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

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

W SQL Server, T-SQL REPLICATE() funkcja powtarza wartość ciągu określoną liczbę razy i zwraca wynik.

Funkcja przyjmuje dwa argumenty; ciąg wejściowy i liczbę powtórzeń.

Składnia

Składnia wygląda tak:

REPLICATE ( string_expression ,integer_expression )

Gdzie string_expression jest ciągiem wejściowym. Mogą to być dane znakowe lub binarne.

I integer_expression jest liczbą całkowitą, która określa, ile razy należy powtórzyć ciąg wejściowy. Może to być dowolny typ liczby całkowitej, w tym bigint .

Zauważ, że jeśli pierwszy argument nie jest typu varchar(max) lub nvarchar(maks.) , funkcja obcina zwracaną wartość do 8000 bajtów. Aby zwrócić wartości większe niż 8000 bajtów, pierwszy argument musi być jawnie rzutowany na odpowiedni typ danych o dużej wartości.

Przykład 1 – Podstawowe użycie

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

SELECT REPLICATE('Dog', 3) AS Result;

Wynik:

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

Przykład 2 – Dodaj spację

Możemy również dodać spację do poprzedniego przykładu:

SELECT REPLICATE('Dog', 3) AS Result;

Wynik:

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

Pamiętaj jednak, że spowoduje to również dodanie spacji na końcu ciągu.

Moglibyśmy użyć TRIM() funkcja do przezwyciężenia tego:

SELECT TRIM(REPLICATE('Dog ', 3)) AS Result;

Wynik:

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

Może poniższy przykład sprawi, że będzie to bardziej widoczne:

SELECT 
  REPLICATE('Dog ', 3) + '.' AS 'Untrimmed',
  TRIM(REPLICATE('Dog ', 3)) + '.' AS 'Trimmed';

Wynik:

+---------------+--------------+
| Untrimmed     | Trimmed      |
|---------------+--------------|
| Dog Dog Dog . | Dog Dog Dog. |
+---------------+--------------+

Przykład 3 – Nieprawidłowa liczba replikacji

Jeśli drugi argument jest wartością ujemną, NULL jest zwracany:

SELECT REPLICATE('Dog', -3) AS Result;

Wynik:

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

Przykład 4 – Przykład bazy danych

Oto przykład replikacji danych z bazy danych:

SELECT TOP(3) 
TRIM(REPLICATE(ArtistName + ' ', 3)) AS Result
FROM Artists;

Wynik:

+----------------------------------------------------+
| Result                                             |
|----------------------------------------------------|
| Iron Maiden Iron Maiden Iron Maiden                |
| AC/DC AC/DC AC/DC                                  |
| Allan Holdsworth Allan Holdsworth Allan Holdsworth |
+----------------------------------------------------+

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Entity Framework 6 wycofywanie transakcji

  2. Usunąć klucz obcy bez znajomości nazwy ograniczenia?

  3. Jak używać instrukcji IF/ELSE do aktualizacji lub tworzenia nowego wpisu węzła XML w Sql

  4. SQL Server SELECT, gdzie dowolna kolumna zawiera „x”

  5. SqlDependency nie uruchamia zdarzenia OnChange po zmianie zestawu danych