SQL Server: Menambahkan Sifar Utama pada Nombor
Pangkalan data SQL Server 2000 warisan anda menggunakan char(6)
untuk nombor lencana pekerja, menjamin format yang konsisten dengan sifar pendahuluan. Walau bagaimanapun, aplikasi web baharu anda menyimpannya sebagai integer untuk kecekapan yang lebih baik. Ini memberikan cabaran pemformatan apabila menanyakan data.
Berikut ialah cara memformat integer dengan sifar pendahuluan dalam pertanyaan SQL anda:
Penyelesaian menggunakan REPLICATE:
Fungsi REPLICATE
menyediakan penyelesaian yang elegan:
<code class="language-sql">SELECT REPLICATE('0', 6 - LEN(employeeId)) + employeeId FROM dbo.RequestItems WHERE ID = 0;</code>
Laraskan '6' dalam REPLICATE
untuk mengawal jumlah panjang rentetan empuk. Contoh ini mengekalkan panjang enam aksara.
Sebagai contoh, employeeId
daripada 7135 akan mengembalikan '007135'.
Mengendalikan Lajur INT:
Jika employeeId
ialah lajur INT
, gunakan RTRIM
untuk penukaran tersirat kepada VARCHAR
:
<code class="language-sql">SELECT REPLICATE('0', 6 - LEN(RTRIM(employeeId))) + RTRIM(employeeId) FROM dbo.RequestItems WHERE ID = 0;</code>
Mengalih keluar Sifar Utama:
Untuk mendapatkan semula nombor asal (tanpa mendahului sifar), gunakan fungsi RIGHT
dan PATINDEX
:
<code class="language-sql">SELECT RIGHT(employeeId, (LEN(employeeId) - PATINDEX('%[^0]%', employeeId)) + 1) FROM dbo.RequestItems WHERE ID = 0;</code>
Pendekatan ini menawarkan penyelesaian yang mantap untuk mengurus sifar utama dalam kedua-dua kod C# dan pertanyaan SQL Server anda, memastikan ketekalan data merentas aplikasi anda.
Atas ialah kandungan terperinci Bagaimana untuk Pad Nombor dengan Sifar Utama dalam Pertanyaan SQL Server?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!