Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Dotyczy:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
Analytics Platform System (PDW)
Punkt końcowy analizy SQL w usłudze Microsoft Fabric
Hurtownia danych w usłudze Microsoft Fabric
Baza 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)