SQL Server-Äquivalent der Funktion substring_index in MySQL
Die Funktion substring_index in MySQL wird verwendet, um eine Teilzeichenfolge aus einer angegebenen Zeichenfolge vor einer bestimmten zu extrahieren Anzahl der Vorkommen eines Trennzeichens. Um eine ähnliche Funktionalität in SQL Server 2012 zu erreichen, können Sie einen der folgenden Ansätze verwenden:
T-SQL-Skalarfunktion:
CREATE FUNCTION dbo.SUBSTRING_INDEX ( @str NVARCHAR(4000), @delim NVARCHAR(1), @count INT ) RETURNS NVARCHAR(4000) WITH SCHEMABINDING BEGIN -- Convert the string to an XML document for processing DECLARE @XmlSourceString XML; SET @XmlSourceString = (SELECT N'<root><row>' + REPLACE( (SELECT @str AS '*' FOR XML PATH('')) , @delim, N'</row><row>' ) + N'</row></root>'); -- Extract the desired substring using XQuery 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 -- Example usage SELECT dbo.SUBSTRING_INDEX(N'www.somewebsite.com', N'.', 2) AS Result;
T- SQL-Inline-Tabellenwertfunktion:
CREATE FUNCTION dbo.SUBSTRING_INDEX ( @str NVARCHAR(4000), @delim NVARCHAR(1), @count INT ) RETURNS TABLE AS RETURN WITH Base AS ( SELECT XmlSourceString = CONVERT(XML, (SELECT N'<root><row>' + REPLACE( (SELECT @str AS '*' FOR XML PATH('')) , @delim, N'</row><row>' ) + N'</row></root>')) ) SELECT STUFF ( (( SELECT @delim + x.XmlCol.value(N'(text())[1]', N'NVARCHAR(4000)') AS '*' FROM Base b CROSS APPLY b.XmlSourceString.nodes(N'(root/row)[position() <= sql:variable("@count")]') x(XmlCol) FOR XML PATH(N''), TYPE ).value(N'.', N'NVARCHAR(4000)')), 1, 1, N'' ) AS Result; GO -- Example usage SELECT * FROM ( SELECT N'www.somewebsite.com' UNION ALL SELECT N'www.yahoo.com' UNION ALL SELECT N'www.outlook.com' ) a(Value) CROSS APPLY dbo.SUBSTRING_INDEX(a.Value, N'.', 2) b;
Mit diesen Funktionen können Sie das Verhalten von replizieren die MySQL-Funktion substring_index in SQL Server, die es Ihnen ermöglicht, Teilstring-Extraktionsaufgaben portabel durchzuführen.
Das obige ist der detaillierte Inhalt vonWie erreicht man die SUBSTRING_INDEX-Funktionalität von MySQL in SQL Server 2012?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!