Heim > Datenbank > MySQL-Tutorial > Hauptteil

Wie repliziere ich die SUBSTRING_INDEX-Funktion von MySQL in SQL Server?

Barbara Streisand
Freigeben: 2024-11-17 09:20:03
Original
906 Leute haben es durchsucht

How to Replicate MySQL's SUBSTRING_INDEX Function in SQL Server?

SQL Server-Äquivalent der MySQL-Funktion „substring_index“

Bei der Migration von Abfragen von MySQL zu SQL Server ist es häufig erforderlich, SQL Server-Äquivalente für häufig verwendete MySQL-Funktionen zu finden.

Die Funktion substring_index() von MySQL

Die Funktion SUBSTRING_INDEX() von MySQL ruft einen Teilstring aus einem bestimmten String basierend auf dem Vorkommen eines angegebenen Trennzeichens ab. Seine Syntax ist:

SUBSTRING_INDEX(str, delim, count)
Nach dem Login kopieren

Zum Beispiel:

SELECT SUBSTRING_INDEX('www.somewebsite.com','.',2);
Nach dem Login kopieren

Dies würde „www.somewebsite“ zurückgeben.

Entspricht in SQL Server T-SQL

Eine praktikable Option in T-SQL zum Replizieren der Funktionalität von SUBSTRING_INDEX() ist eine Kombination aus XQuery und einer Skalarfunktion:

CREATE FUNCTION dbo.SUBSTRING_INDEX
(
    @str NVARCHAR(4000),
    @delim NVARCHAR(1),
    @count INT
)
RETURNS NVARCHAR(4000)
WITH SCHEMABINDING
BEGIN
    DECLARE @XmlSourceString XML;
    SET @XmlSourceString = (SELECT N'<root><row>' + REPLACE( (SELECT @str AS '*' FOR XML PATH('')) , @delim, N'</row><row>' ) + N'</row></root>');

    RETURN STUFF
    (
        ((
            SELECT  @delim + x.XmlCol.value(N'(text())[1]', N'NVARCHAR(4000)') AS '*'
            FROM    @XmlSourceString.nodes(N'(root/row)[position() <= sql:variable("@count")]') x(XmlCol)
            FOR XML PATH(N''), TYPE
        ).value(N'.', N'NVARCHAR(4000)')), 
        1, 1, N''
    );
END
GO
Nach dem Login kopieren

Beispielverwendung:

SELECT dbo.SUBSTRING_INDEX(N'www.somewebsite.com', N'.', 2) AS Result;
Nach dem Login kopieren

Ausgabe :

Result
---------------
www.somewebsite
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonWie repliziere ich die SUBSTRING_INDEX-Funktion von MySQL in SQL Server?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage