Pengiraan perpuluhan yang tepat dalam SQL Server selalunya memerlukan pemilihan antara pemotongan dan pembundaran. Panduan ini memperincikan perbezaan utama dan menunjukkan cara memotong nilai perpuluhan tanpa pembundaran.
Contoh Ilustrasi:
<code class="language-sql">DECLARE @value DECIMAL(18,2); SET @value = 123.456;</code>
SQL Server secara automatik membundarkan @value
kepada 123.46. Walaupun sesuai untuk banyak aplikasi, senario wujud di mana pembundaran tidak diingini, memerlukan pemangkasan.
Teknik Pemangkasan Berkesan
1. Memanfaatkan Fungsi ROUND:
Fungsi ROUND
menawarkan ciri halus namun berkuasa: parameter ketiga mengawal pemotongan.
<code class="language-sql">ROUND(123.456, 2, 1);</code>
Parameter bukan sifar ketiga mengarahkan ROUND
untuk memotong dan bukannya membulat.
2. Menggunakan CAST dan CONVERT:
Menghantar atau menukar perpuluhan kepada jenis integer secara langsung memotong bahagian perpuluhan:
<code class="language-sql">CAST(@value AS INT); CONVERT(INT, @value);</code>
3. Manipulasi Rentetan dengan SUBSTRING atau KIRI:
Ekstrak bahagian yang diingini menggunakan SUBSTRING
atau LEFT
, kemudian tukar semula kepada perpuluhan:
<code class="language-sql">SUBSTRING(@value, 1, 4); LEFT(@value, 4);</code>
4. Menggunakan Fungsi FLOOR:
Fungsi FLOOR
, digabungkan dengan pendaraban dan pembahagian, menyediakan kaedah pemangkasan lain:
<code class="language-sql">FLOOR(@value * 100) / 100;</code>
Ini dengan berkesan memendekkan kepada dua tempat perpuluhan. Ingat untuk melaraskan pengganda dan pembahagi untuk tahap ketepatan yang berbeza.
Atas ialah kandungan terperinci Bagaimana untuk Memotong, Bukan Bulat, Tempat Perpuluhan dalam Pelayan SQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!