Rumah >pangkalan data >tutorial mysql >Bagaimana untuk Pad Nombor dengan Sifar Utama dalam Pertanyaan SQL Server?

Bagaimana untuk Pad Nombor dengan Sifar Utama dalam Pertanyaan SQL Server?

Patricia Arquette
Patricia Arquetteasal
2025-01-10 20:47:48362semak imbas

How to Pad Numbers with Leading Zeros in SQL Server Queries?

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!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn