Udostępnij za pomocą


RZECZY (Transact-SQL)

Dotyczy:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsAnalytics Platform System (PDW)Punkt końcowy analizy SQL w usłudze Microsoft FabricHurtownia danych w usłudze Microsoft FabricBaza danych SQL w usłudze Microsoft Fabric

Funkcja STUFF wstawia ciąg do innego ciągu. Usuwa określoną długość znaków w pierwszym ciągu na pozycji początkowej, a następnie wstawia drugi ciąg do pierwszego ciągu na pozycji początkowej.

Transact-SQL konwencje składni

Składnia

STUFF ( character_expression , start , length , replace_with_expression )

Arguments

character_expression

Wyrażenie danych postaci. character_expression może być stałą, zmienną lub kolumną zawierającą dane znakowe lub binarne.

start

Wartość całkowita określająca miejsce rozpoczęcia usuwania i wstawiania. Jeśli start jest ujemny lub zerowy, zwracany jest ciąg zerowy. Jeśli start jest dłuższy niż pierwszy character_expression, zwracany jest ciąg zerowy. Start może mieć typ bigint.

length

Liczba całkowita określająca liczbę znaków do usunięcia. Jeśli długość jest ujemna, zwracany jest ciąg zerowy. Jeśli długość jest dłuższa niż pierwszy character_expression, usunięcie następuje do ostatniego znaku w ostatnim character_expression. Jeśli długość wynosi zero, wstawianie następuje w miejscu startowym i żadne znaki nie są usuwane. Długość może mieć typ bigint.

replace_with_expression

Wyrażenie danych postaci. replace_with_expression może być stałą, zmienną lub kolumną zawierającą dane znakowe lub binarne. To wyrażenie zastępuje znaki długościcharacter_expression zaczynając od początku. Udostępnianie NULLjako replace_with_expression usuwa znaki bez wstawiania czegokolwiek.

Typy zwracane

Zwraca dane znaku, jeśli character_expression jest jednym z obsługiwanych typów danych znaków. Zwraca dane binarne, jeśli character_expression jest jednym z obsługiwanych typów danych binarnych.

Uwagi

Jeśli pozycja startowa lub długość jest ujemna, albo jeśli pozycja początkowa jest większa niż długość pierwszej struny, zwracany jest ciąg zerowy. Jeśli pozycja początkowa wynosi 0, zwracana jest wartość zerowa. Jeśli długość do usunięcia jest dłuższa niż pierwszy ciąg, jest on usuwany do pierwszego znaku w pierwszym ciągu znaków.

Błąd jest podnoszony, jeśli otrzymana wartość jest większa niż maksymalna wartość wspierana przez typ zwrotu.

Postacie uzupełniające (pary zastępcze)

Przy użyciu kolacji znaków uzupełniających (SC) zarówno character_expression , jak i replace_with_expression mogą zawierać pary zastępcze. Parametr długości liczy każdego zastępczego w character_expression jako pojedynczy znak.

Przykłady

Poniższy przykład zwraca ciąg znaków utworzony przez usunięcie trzech znaków z pierwszego ciągu abcdef, zaczynając od pozycji 2, w , bi wstawiając drugi ciąg w punkcie usunięcia.

SELECT STUFF('abcdef', 2, 3, 'ijklmn');
GO

Oto zestaw wyników.

---------
aijklmnef
  
(1 row(s) affected)

Zobacz także