Rumah >pangkalan data >tutorial mysql >Bagaimanakah Saya Boleh Mengeluarkan Nilai Khusus daripada Rentetan Terhad dalam T-SQL?

Bagaimanakah Saya Boleh Mengeluarkan Nilai Khusus daripada Rentetan Terhad dalam T-SQL?

Barbara Streisand
Barbara Streisandasal
2024-12-25 02:37:08776semak imbas

How Can I Extract Specific Values from Delimited Strings in T-SQL?

Memisahkan Rentetan Menggunakan Pembatas dalam T-SQL

Dalam T-SQL, mengekstrak maklumat khusus daripada rentetan panjang boleh dicapai dengan membelah rentetan menggunakan aksara pembatas. Teknik ini terbukti amat berguna apabila berurusan dengan data yang kompleks dan berstruktur.

Senario Contoh

Pertimbangkan jadual dengan lajur yang mengandungi rentetan dengan berbilang pasangan nilai kunci yang dipisahkan oleh paip (|) dan sama (=) aksara. Matlamatnya adalah untuk mendapatkan hanya nilai khusus yang dikaitkan dengan "Nama Pelanggan."

Penyelesaian Menggunakan Fungsi SUBSTRING dan STUFF

Untuk mengekstrak nilai yang diingini, kita boleh menggunakan gabungan fungsi SUBSTRING dan STUFF:

Select col1, col2, LTRIM(RTRIM(SUBSTRING(
    STUFF(col3, CHARINDEX('|', col3,
    PATINDEX('%|Client Name =%', col3) + 14), 1000, ''),
    PATINDEX('%|Client Name =%', col3) + 14, 1000))) col3
from Table01

Pecahan Penyelesaian

Pertanyaan menggunakan langkah berikut:

  1. Fungsi STUFF: Menambah aksara ruang di lokasi yang ditentukan untuk mencipta pembatas unik untuk pasangan nilai kunci yang mengandungi "Nama Pelanggan."
  2. CHARINDEX Fungsi: Mencari kedudukan watak paip yang mendahului "Nama Pelanggan."
  3. Fungsi PATINDEX: Mengenal pasti kedudukan pembatas nilai kunci "Nama Pelanggan".
  4. Fungsi SUBSTRING: Mengekstrak subrentetan yang mengandungi "Nama Pelanggan" nilai.
  5. Fungsi LTRIM dan RTRIM: Alih keluar sebarang ruang kosong di hadapan atau di belakang daripada nilai yang diekstrak.

Pertimbangan Prestasi

Walaupun kedua-dua CharIndex dan PatIndex boleh digunakan untuk pengecaman pembatas, ujian prestasi menunjukkan bahawa mereka menghasilkan keputusan yang sama. Oleh itu, pilihan antara mereka selalunya diutamakan.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengeluarkan Nilai Khusus daripada Rentetan Terhad dalam T-SQL?. 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