Rumah >pangkalan data >tutorial mysql >Bagaimana untuk Memangkas Sifar Utama dengan Cekap daripada Rentetan dalam Pelayan SQL?
Penyingkiran Sifar Utama Rentetan Pelayan SQL: Petua Pengoptimuman
Mengalih keluar sifar pendahuluan daripada rentetan ialah tugas biasa dalam SQL Server. Kaedah biasa ialah menggunakan fungsi SUBSTRING, sintaksnya adalah seperti berikut:
<code class="language-sql">SUBSTRING(str_col, PATINDEX('%[^0]%', str_col), LEN(str_col))</code>
Walau bagaimanapun, kaedah ini mempunyai had apabila mengendalikan rentetan yang mengandungi hanya sifar aksara ('00000000'), kerana ia tidak dapat mencari aksara bukan sifar untuk dipadankan.
Cara lain ialah menggunakan fungsi TRIM dan REPLACE:
<code class="language-sql">REPLACE(LTRIM(REPLACE(str_col, '0', ' ')), ' ', '0')</code>
Walaupun kaedah ini menyelesaikan masalah rentetan semua sifar, kaedah ini memperkenalkan masalah yang berpotensi dengan menukar ruang terbenam kepada sifar dalam langkah penggantian terakhir.
Untuk mengatasi batasan ini, pendekatan yang lebih cekap dicadangkan:
<code class="language-sql">SUBSTRING(str_col, PATINDEX('%[^0]%', str_col+'.'), LEN(str_col))</code>
Kaedah yang dipertingkatkan ini menambahkan noktah ('.') pada rentetan input sebelum menggunakan fungsi PATINDEX. Operasi tambahan ini memastikan bahawa aksara bukan sifar (dalam kes ini '.') sentiasa boleh ditemui, walaupun untuk rentetan yang mengandungi sifar sahaja. Kaedah ini mempunyai kelebihan berikut:
Atas ialah kandungan terperinci Bagaimana untuk Memangkas Sifar Utama dengan Cekap daripada Rentetan dalam Pelayan SQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!