Rumah >pangkalan data >tutorial mysql >Bagaimanakah Saya Boleh Menyusun Lajur VARCHAR yang Mengandungi Nombor Secara Numerik dalam Pelayan SQL?

Bagaimanakah Saya Boleh Menyusun Lajur VARCHAR yang Mengandungi Nombor Secara Numerik dalam Pelayan SQL?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-12-31 12:20:11870semak imbas

How Can I Sort VARCHAR Columns Containing Numbers Numerically in SQL Server?

Mengisih Lajur VARCHAR Mengandungi Nombor dalam Pelayan SQL

Mengisih lajur VARCHAR yang mengandungi kedua-dua huruf dan nombor boleh mencabar, terutamanya apabila anda mahu utamakan pengisihan berangka untuk nilai berangka. Satu penyelesaian yang berkesan ialah dengan memasukkan nilai berangka dengan sifar untuk mencapai panjang rentetan yang konsisten.

Pertanyaan SQL di bawah menunjukkan pendekatan ini:

select MyColumn
from MyTable
order by 
    case IsNumeric(MyColumn) 
        when 1 then Replicate('0', 100 - Len(MyColumn)) + MyColumn
        else MyColumn
    end

Dalam pertanyaan ini:

  • IsNumeric(MyColumn) menyemak sama ada nilai dalam MyColumn ialah angka.
  • Jika ia ialah angka, fungsi Replicate() menambah sifar pada permulaan nilai sehingga ia mencapai panjang 100 aksara. Ini memastikan semua nilai berangka mempunyai panjang rentetan yang sama.
  • Jika nilai itu bukan angka, ia kekal tidak berubah.

Dengan memesan data berdasarkan nilai yang diubah suai, pertanyaan ini akan mengisih nilai berangka secara berangka dan bukan angka mengikut abjad, seperti yang dikehendaki. Ingat untuk menggantikan 100 dengan panjang sebenar MyColumn dalam pangkalan data anda.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menyusun Lajur VARCHAR yang Mengandungi Nombor Secara Numerik dalam Pelayan SQL?. 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