sql >> Databáze >  >> RDS >> Sqlserver

Jak funguje funkce REPLICATE() v SQL Server (T-SQL)

V SQL Server, T-SQL REPLICATE() funkce zopakuje hodnotu řetězce zadaný početkrát a vrátí výsledek.

Funkce přijímá dva argumenty; vstupní řetězec a počet opakování.

Syntaxe

Syntaxe vypadá takto:

REPLICATE ( string_expression ,integer_expression )

Kde řetězcový_výraz je vstupní řetězec. Mohou to být znaková nebo binární data.

A integer_expression je celé číslo, které určuje, kolikrát se má vstupní řetězec opakovat. Může to být jakýkoli typ celého čísla, včetně bigint .

Všimněte si, že pokud první argument není typu varchar(max) nebo nvarchar(max) , funkce zkrátí návratovou hodnotu na 8 000 bajtů. Chcete-li vrátit hodnoty větší než 8 000 bajtů, musí být první argument explicitně přetypován na příslušný datový typ s velkou hodnotou.

Příklad 1 – Základní použití

Zde je příklad, jak to funguje:

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

Výsledek:

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

Příklad 2 – Přidání mezery

K předchozímu příkladu můžeme také přidat mezeru:

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

Výsledek:

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

I když mějte na paměti, že to přidá mezeru i na konec řetězce.

Mohli bychom použít TRIM() funkce k překonání tohoto:

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

Výsledek:

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

Možná to objasní následující příklad:

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

Výsledek:

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

Příklad 3 – Neplatný počet replikací

Pokud je druhý argument záporná hodnota, NULL je vráceno:

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

Výsledek:

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

Příklad 4 – Příklad databáze

Zde je příklad replikace dat z databáze:

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

Výsledek:

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

  1. Příklady SQRT() v SQL Server

  2. Jak analyzovat řetězce jako profesionál pomocí funkce SQL SUBSTRING()?

  3. Co je nového v Accessu 2016? Vyplatí se upgradovat?

  4. Zastaralé funkce, které je třeba vyjmout ze sady nástrojů – část 2