Rumah >pangkalan data >tutorial mysql >Bagaimana untuk Mengekstrak Data Khusus daripada Rentetan Terhad dalam T-SQL?
Cara Mengasingkan Data Tertentu daripada Rentetan Terhad dalam T-SQL
Dalam dunia SQL, bekerja dengan rentetan kadangkala boleh menimbulkan cabaran , terutamanya apabila cuba mengekstrak maklumat khusus daripada rentetan yang lebih panjang yang mengandungi berbilang titik data. Mari terokai senario di mana anda mempunyai jadual dengan lajur yang memegang rentetan yang mengandungi berbilang pasangan nilai kunci yang dipisahkan oleh pembatas.
Definisi Masalah
Diberikan jadual dengan struktur berikut:
Col1 = '123' Col2 = 'AAAAA' Col3 = 'Clent ID = 4356hy|Client Name = B B BOB|Client Phone = 667-444-2626|Client Fax = 666-666-0151|Info = INF8888877 -MAC333330554/444400800'
Matlamat anda adalah untuk mengekstrak hanya "Nama Pelanggan" nilai, yang dalam kes ini ialah "B B BOB," daripada lajur "Col3". Pembatas yang memisahkan pasangan nilai kunci ialah '|' aksara paip dan pasangan nilai kunci itu sendiri dibataskan oleh tanda sama dengan (' = ') dengan ruang putih di hadapan dan di belakang.
Penyelesaian
Untuk menangani perkara ini masalah dalam T-SQL, anda boleh menggunakan manipulasi rentetan berikut teknik:
Snippet Kod
Untuk data khusus anda, anda boleh menggunakan yang berikut coretan kod untuk mencapai hasil yang diingini:
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
Nota: Anda mungkin mengalami perbezaan prestasi kecil apabila menggunakan CHARINDEX berbanding PATINDEX untuk mencari kedudukan permulaan kunci. Walau bagaimanapun, kedua-dua pendekatan biasanya menghasilkan hasil yang serupa, kerana kecekapannya adalah setanding.
Atas ialah kandungan terperinci Bagaimana untuk Mengekstrak Data Khusus daripada Rentetan Terhad dalam T-SQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!