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

Bagaimana untuk Mengisih Lajur VARCHAR dengan Nilai Abjad Angka Campuran Secara Semulajadi dalam Pelayan SQL?

Susan Sarandon
Lepaskan: 2025-01-04 02:06:40
asal
706 orang telah melayarinya

How to Sort a VARCHAR Column with Mixed Alphanumeric Values Naturally in SQL Server?

Mengisih Lajur VARCHAR dengan Nilai Abjad Angka Campuran dalam Pelayan SQL

Jadual pangkalan data mungkin mengandungi lajur VARCHAR yang boleh menyimpan gabungan huruf dan nombor. Apabila mengisih lajur ini, selalunya wajar untuk memisahkan nilai berangka dan mengisihnya secara semula jadi, sambil mengekalkan susunan abjad untuk medan bukan angka.

Masalah:

Bagaimana boleh anda mengisih lajur VARCHAR yang mengandungi kedua-dua huruf dan nombor dalam SQL Server supaya nombor diisih mengikut berangka dan huruf diisih mengikut abjad?

Penyelesaian:

Untuk mencapai ini, anda boleh menggunakan kaedah yang menggabungkan fungsi IsNumeric dan fungsi Replika. Fungsi IsNumeric menyemak sama ada rentetan ialah angka, manakala fungsi Replika menambah bilangan aksara yang ditentukan pada permulaan rentetan.

Berikut ialah contoh pertanyaan:

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 , ungkapan CASE menyemak sama ada nilai dalam lajur MyColumn ialah angka. Jika ya, fungsi Replika menambah bilangan sifar pendahuluan yang mencukupi pada rentetan supaya semua nilai berangka mempunyai panjang yang sama (100 dalam contoh ini). Ini memastikan bahawa ia diisih mengikut berangka.

Untuk nilai bukan angka, klausa ELSE hanya mengembalikan nilai asal, mengekalkan susunan abjad.

Laraskan nilai 100 dalam fungsi Replika berdasarkan pada panjang maksimum nilai angka dalam lajur.

Atas ialah kandungan terperinci Bagaimana untuk Mengisih Lajur VARCHAR dengan Nilai Abjad Angka Campuran Secara Semulajadi 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