Rumah >pangkalan data >tutorial mysql >Bagaimana untuk Memisahkan Rentetan dengan Cekap dalam SQL Server 2008 R2?

Bagaimana untuk Memisahkan Rentetan dengan Cekap dalam SQL Server 2008 R2?

Barbara Streisand
Barbara Streisandasal
2025-01-25 07:06:09244semak imbas

rentetan dalam segmentasi SQL Server 2008 R2

yang cekap

<:> Soalan:

Penggunaan rentetan segmentasi pemisah (seperti koma) adalah keperluan umum dalam pemprosesan data. Walau bagaimanapun, banyak penyelesaian yang berkesan dalam versi SQL Server yang lebih tinggi tidak sesuai untuk SQL Server 2008 R2.

Penyelesaian:

Untuk SQL Server 2008 R2, kaedah yang boleh dipercayai adalah menggunakan T-SQL untuk membuat fungsi definisi pengguna tersuai (UDF). UDF berikut yang dipanggil dbo.splitstring boleh digunakan untuk membahagikan rentetan mengikut pemisah yang ditentukan:

Untuk menggunakan UDF ini, lulus rentetan untuk dibahagikan sebagai parameter, seperti yang ditunjukkan di bawah:
<code class="language-sql">CREATE FUNCTION dbo.splitstring (@stringToSplit VARCHAR(MAX))
RETURNS @returnList TABLE ([Name] [nvarchar](500))
AS
BEGIN
    DECLARE @name NVARCHAR(255)
    DECLARE @pos INT

    WHILE CHARINDEX(',', @stringToSplit) > 0
    BEGIN
        SELECT @pos = CHARINDEX(',', @stringToSplit)
        SELECT @name = SUBSTRING(@stringToSplit, 1, @pos - 1)

        INSERT INTO @returnList
        SELECT @name

        SELECT @stringToSplit = SUBSTRING(@stringToSplit, @pos + 1, LEN(@stringToSplit) - @pos)
    END

    INSERT INTO @returnList
    SELECT @stringToSplit

    RETURN
END</code>

Ini akan mengembalikan jadual, yang mengandungi komponen rentetan asal, yang dipisahkan oleh koma.
<code class="language-sql">SELECT * FROM dbo.splitstring('91,12,65,78,56,789')</code>

Atas ialah kandungan terperinci Bagaimana untuk Memisahkan Rentetan dengan Cekap dalam SQL Server 2008 R2?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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