Bagaimana untuk Meniru Fungsi SUBSTRING_INDEX MySQL dalam Pelayan SQL?

Barbara Streisand
Lepaskan: 2024-11-17 09:20:03
asal
906 orang telah melayarinya

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

SQL Server bersamaan dengan fungsi substring_index MySQL

Apabila memindahkan pertanyaan daripada MySQL ke SQL Server, selalunya perlu mencari persamaan SQL Server untuk fungsi MySQL yang biasa digunakan.

substring_index() MySQL function

Fungsi SUBSTRING_INDEX() MySQL mendapatkan semula subrentetan daripada rentetan yang diberikan berdasarkan kejadian pembatas yang ditentukan. Sintaksnya ialah:

SUBSTRING_INDEX(str, delim, count)
Salin selepas log masuk

Contohnya:

SELECT SUBSTRING_INDEX('www.somewebsite.com','.',2);
Salin selepas log masuk

Ini akan mengembalikan 'www.somewebsite'.

Setara dalam SQL Server T-SQL

Satu pilihan berdaya maju dalam T-SQL untuk mereplikasi SUBSTRING_INDEX() kefungsian ialah gabungan XQuery dan fungsi skalar:

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
Salin selepas log masuk

Contoh penggunaan:

SELECT dbo.SUBSTRING_INDEX(N'www.somewebsite.com', N'.', 2) AS Result;
Salin selepas log masuk

Output:

Result
---------------
www.somewebsite
Salin selepas log masuk

Atas ialah kandungan terperinci Bagaimana untuk Meniru Fungsi SUBSTRING_INDEX MySQL dalam Pelayan SQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan