Rumah > pangkalan data > tutorial mysql > Bagaimanakah master..spt_values ​​Boleh Digunakan untuk Pemisahan Lajur yang Cekap dalam Pelayan SQL?

Bagaimanakah master..spt_values ​​Boleh Digunakan untuk Pemisahan Lajur yang Cekap dalam Pelayan SQL?

DDD
Lepaskan: 2025-01-01 04:12:09
asal
691 orang telah melayarinya

How Can master..spt_values Be Used for Efficient Column Splitting in SQL Server?

Mengapa dan Bagaimana Menggunakan induk..spt_values ​​untuk Pemisahan Lajur

Tujuan induk..spt_values< h3>

Walaupun statusnya yang tidak didokumenkan, master..spt_values ​​ialah jadual berharga yang membolehkan prosedur sistem dalam Microsoft SQL Server melaksanakan pelbagai fungsi dengan berkesan. Ia mengandungi koleksi jadual rujukan dan data unjuran yang digunakan oleh prosedur sistem ini, termasuk nilai carian untuk jenis data, peranan dan metadata lain.

Jenis Pemahaman = 'P'

Type = 'P' menandakan jadual Unjuran dalam master..spt_values. Jadual ini menyediakan urutan nombor berturut-turut, dari 0 hingga 2047, yang boleh digunakan untuk melakukan unjuran atau traversal melalui data.

Memanfaatkan nilai_spt untuk Pemisahan Lajur

Data mentah yang disimpan dalam master..spt_values ​​tidak bertujuan untuk kegunaan langsung oleh pengguna pertanyaan. Walau bagaimanapun, keupayaan unjurannya amat berguna untuk memisahkan data dalam satu lajur.

Bayangkan jadual di mana satu lajur mengandungi senarai nilai yang dipisahkan koma, seperti '1,2,3'. Untuk mengubah lajur ini kepada berbilang baris, anda boleh menggunakan spt_values ​​seperti berikut:

SELECT
    RIGHT(LEFT(T.col4,Number-1),
    CHARINDEX(',',REVERSE(LEFT(','+T.col4,Number-1))))
FROM
    master..spt_values,
    table1 T
WHERE
    Type = 'P' AND Number BETWEEN 1 AND LEN(T.col4)+1 AND
    (SUBSTRING(T.col4,Number,1) = ','
    -- OR SUBSTRING(T.col4,Number,1)  = '') --this does not work correctly anyway
Salin selepas log masuk

Dalam senario ini, pertanyaan akan berulang melalui jadual spt_values ​​(Jenis = 'P') dan menggunakan urutan nombor untuk membimbing operasi berpecah. Ia mengasingkan setiap nilai dengan berkesan dalam senarai yang dipisahkan koma, mencipta baris yang berbeza dalam set hasil.

Faedah Menggunakan spt_values ​​untuk Pemisahan Lajur

Menggunakan master. .spt_values ​​untuk pemisahan lajur menawarkan beberapa kelebihan:

  • Kecekapan: Dengan menggunakan jadual dan urutan nombor sedia ada, pertanyaan mengelakkan overhed mencipta dan mengisi jadual sementara.
  • Fleksibiliti: Jadual unjuran menyediakan pelbagai nombor, membolehkan pelbagai operasi pemisahan pada lajur dengan berbeza panjang.
  • Keserasian: master..spt_values ​​ialah jadual sistem terbina dalam dan dengan itu tersedia secara universal dalam pemasangan SQL Server, memastikan keserasian dan kebolehpercayaan.

Atas ialah kandungan terperinci Bagaimanakah master..spt_values ​​Boleh Digunakan untuk Pemisahan Lajur yang Cekap 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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan