Rumah > pangkalan data > tutorial mysql > Bagaimana Mengisih Lajur VARCHAR dengan Nilai Angka dan Abjad Campuran Secara Numerik dalam Pelayan SQL?

Bagaimana Mengisih Lajur VARCHAR dengan Nilai Angka dan Abjad Campuran Secara Numerik dalam Pelayan SQL?

Susan Sarandon
Lepaskan: 2025-01-04 01:52:40
asal
408 orang telah melayarinya

How to Sort VARCHAR Columns with Mixed Numeric and Alphabetic Values Numerically in SQL Server?

Mengisih Lajur VARCHAR dengan Nilai Angka dalam Pelayan SQL

Apabila berurusan dengan lajur VARCHAR yang mungkin mengandungi kedua-dua nombor dan huruf, pengisihan membentangkan cabaran jika anda mahu nilai berangka dipesan secara berangka. Secara lalai, SQL Server akan mengisih lajur sedemikian mengikut abjad, yang tidak diingini dalam kes ini.

Untuk mencapai gelagat pengisihan yang diingini, penyelesaian melibatkan padding nilai berangka dengan aksara untuk memastikan semua rentetan mempunyai panjang yang sama. Ini membolehkan SQL Server mengisih data secara berangka.

Berikut ialah contoh pertanyaan yang menunjukkan pendekatan ini:

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

Dalam pertanyaan ini, fungsi IsNumeric digunakan untuk menentukan sama ada nilai adalah angka . Jika ya, fungsi Replicate menambah sifar pendahuluan untuk melapik rentetan ke panjang tetap (100 dalam contoh ini). Jika tidak, nilai itu dibiarkan tidak berubah.

Dengan mengisih mengikut ungkapan ini, nilai berangka akan dipadatkan dan diisih mengikut berangka, manakala nilai bukan angka akan diisih mengikut abjad. Ini memastikan susunan isihan yang diingini, seperti yang ditunjukkan dalam contoh dalam soalan asal:

1
2
10
A
B
B1
Salin selepas log masuk

Atas ialah kandungan terperinci Bagaimana Mengisih Lajur VARCHAR dengan Nilai Angka dan Abjad Campuran Secara Numerik dalam Pelayan SQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan