Rumah >pangkalan data >tutorial mysql >Bagaimanakah Saya Boleh Mengeluarkan Aksara Bukan Angka dengan Cekap daripada Lajur VARCHAR dalam Pelayan SQL?
Penyingkiran Aksara Bukan Angka Berprestasi Tinggi dalam Lajur VARCHAR Pelayan SQL
Pembersihan data adalah penting untuk operasi SQL Server yang cekap, terutamanya apabila berurusan dengan lajur VARCHAR dan kekangan utama yang unik. Mengalih keluar aksara bukan angka dengan pantas adalah kunci kepada prestasi yang dioptimumkan. Pendekatan ini menggunakan fungsi tersimpan dan gelung WHILE-PATINDEX
untuk kelajuan yang lebih tinggi.
Kaedah ini secara berulang mengesan dan mengalih keluar aksara bukan angka. Fungsi PATINDEX
mencari aksara bukan angka pertama dan STUFF
menggantikannya dengan rentetan kosong. Ini berterusan sehingga hanya tinggal angka.
Berikut ialah fungsi tersimpan yang dioptimumkan:
<code class="language-sql">CREATE FUNCTION [fnRemoveNonNumericCharacters] (@strText VARCHAR(1000)) RETURNS VARCHAR(1000) AS BEGIN WHILE PATINDEX('%[^0-9]%', @strText) > 0 BEGIN SET @strText = STUFF(@strText, PATINDEX('%[^0-9]%', @strText), 1, '') END RETURN @strText END</code>
Fungsi tersimpan ini dengan ketara meningkatkan kecekapan pembersihan data, seperti nombor telefon, sebelum menggunakannya dalam perbandingan utama yang unik. Ini amat berfaedah apabila memproses set data yang besar dan menghalang kesesakan prestasi dalam proses import data.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengeluarkan Aksara Bukan Angka dengan Cekap daripada Lajur VARCHAR dalam Pelayan SQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!