Bagaimana Mengisih Lajur Rentetan yang Mengandungi Nombor dalam SQL Semasa Mengekalkan Tertib?

Mary-Kate Olsen
Lepaskan: 2024-10-24 19:43:02
asal
690 orang telah melayarinya

How to Sort String Columns Containing Numbers in SQL While Preserving Order?

Mengisih Lajur Rentetan Yang Mengandungi Nombor dalam SQL

Siasatan ini berkenaan dengan mengisih lajur rentetan yang mengandungi nombor, di mana algoritma pengisihan lalai meletakkan nombor dengan mendahului sifar selepas nombor tanpa mendahului sifar, berpotensi mengubah susunan yang dimaksudkan. Pengguna mencari kaedah untuk mengatasi tingkah laku ini menggunakan SQL sahaja.

Penyelesaian yang berkesan untuk masalah ini melibatkan mengasingkan bahagian berangka rentetan menggunakan fungsi CAST dan fungsi SUBSTRING. Dengan mengekstrak subrentetan angka, fungsi CAST menukarnya kepada nilai integer, membenarkan pengisihan yang betul.

Berikut ialah contoh kod:

<code class="sql">SELECT *
FROM table
ORDER BY CAST(SUBSTRING(column, LOCATE(' ', column) + 1) AS SIGNED)</code>
Salin selepas log masuk

Sebagai contoh, dalam lajur bernama "nama" dengan nilai seperti "a 1", "a 12", "a 2", dan "a 3", pertanyaan akan menghasilkan keputusan berikut:

+----------+
+-- name --+
+----------+
+-- a 1 ---+
+-- a 2 ---+
+-- a 3 ---+
+-- a 12 --+
Salin selepas log masuk

Kaedah ini secara berkesan mengisih lajur berdasarkan nilai angka, sambil mengekalkan awalan alfanumerik.

Atas ialah kandungan terperinci Bagaimana Mengisih Lajur Rentetan yang Mengandungi Nombor dalam SQL Semasa Mengekalkan Tertib?. 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
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!