Rumah > pangkalan data > tutorial mysql > Bagaimana untuk Mengekstrak Nilai Khusus daripada Rentetan Terhad dalam Transact-SQL?

Bagaimana untuk Mengekstrak Nilai Khusus daripada Rentetan Terhad dalam Transact-SQL?

DDD
Lepaskan: 2024-12-16 18:24:11
asal
556 orang telah melayarinya

How to Extract Specific Values from Delimited Strings in Transact-SQL?

Memisahkan Rentetan dengan Pembatas dalam Transact-SQL

Apabila berurusan dengan nilai rentetan kompleks dalam jadual, keperluan sering timbul untuk mengekstrak maklumat tertentu. Ini boleh dicapai dengan menggunakan pembatas untuk mentakrifkan struktur rentetan.

Satu senario sedemikian ditunjukkan oleh jadual dengan lajur yang mengandungi rentetan seperti:

Col3 = 'Clent ID = 4356hy|Client Name = B B BOB|Client Phone = 667-444-2626|Client Fax = 666-666-0151|Info = INF8888877 -MAC333330554/444400800'
Salin selepas log masuk

Di sini, kita ada pembatas khusus yang memisahkan pasangan nilai kunci: '|' untuk menggambarkan lajur dan '= ' (termasuk ruang) untuk memisahkan kunci dan nilai. Objektifnya ialah untuk mengekstrak nilai 'Nama Pelanggan', dalam kes ini 'B B BOB'.

Untuk mencapai matlamat ini, gabungan fungsi manipulasi rentetan dan pernyataan bersyarat boleh digunakan. Satu pendekatan melibatkan penggunaan fungsi CHARINDEX atau PATINDEX untuk mencari kedudukan nilai yang dikehendaki dalam rentetan.

SELECT col1, col2, LTRIM(RTRIM(SUBSTRING(
    STUFF(col3, CHARINDEX('|', col3,
    PATINDEX('%|Client Name =%', col3) + 14), 1000, ''),
    PATINDEX('%|Client Name =%', col3) + 14, 1000)))
FROM Table01
Salin selepas log masuk

Dalam pertanyaan ini, PATINDEX digunakan untuk mencari kedudukan permulaan 'Nama Pelanggan =', diikuti dengan menambah 14 untuk melangkau bahagian ini. Kemudian, CHARINDEX digunakan untuk mencari kedudukan '|' seterusnya. Akhir sekali, fungsi SUBSTRING mengekstrak nilai yang diingini antara kedudukan ini dan LTRIM dan RTRIM digunakan untuk memangkas mana-mana ruang hadapan atau belakang.

Perlu diperhatikan bahawa fungsi khusus yang digunakan untuk tugasan ini mungkin berbeza-beza bergantung pada kerumitan daripada rentetan dan hasil yang diingini.

Atas ialah kandungan terperinci Bagaimana untuk Mengekstrak Nilai Khusus daripada Rentetan Terhad dalam Transact-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