Rumah >pangkalan data >tutorial mysql >Bagaimanakah Saya Boleh Memangkas Sifar Utama dengan Cekap daripada Lajur Pelayan SQL?
Untuk mengalih keluar sifar pendahuluan daripada lajur dalam SQL Server, kaedah tradisional ialah menggunakan gabungan fungsi SUBSTRING
dan fungsi PATINDEX
. Walau bagaimanapun, pendekatan ini mungkin menghadapi masalah apabila berurusan dengan lajur yang mengandungi hanya "0" aksara.
Untuk mengatasi had ini, penyelesaian yang lebih mantap ialah menambahkan noktah (.) pada penghujung rentetan yang diperiksa:
<code class="language-sql">SUBSTRING(str_col, PATINDEX('%[^0]%', str_col+'.'), LEN(str_col))</code>
Tempoh ini memastikan PATINDEX
akan sentiasa mencari padanan aksara bukan "0", walaupun untuk lajur yang hanya mendahului sifar.
Cara lain ialah menggunakan fungsi TRIM
dan REPLACE
:
<code class="language-sql">REPLACE(LTRIM(REPLACE(str_col, '0', ' ')), ' ', '0')</code>
Walau bagaimanapun, kaedah ini memerlukan berhati-hati apabila berurusan dengan ruang terbenam. Untuk mengelak daripada menukar ruang kepada "0", anda boleh menggunakan fungsi takrif pengguna skalar tersuai (UDF). UDF skalar boleh menyebabkan isu prestasi dalam SQL Server 2005, jadi disyorkan untuk mempertimbangkan kaedah lain jika boleh.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Memangkas Sifar Utama dengan Cekap daripada Lajur Pelayan SQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!