首頁  >  文章  >  資料庫  >  如何在保留順序的同時對 SQL 中包含數字的字串列進行排序?

如何在保留順序的同時對 SQL 中包含數字的字串列進行排序?

Mary-Kate Olsen
Mary-Kate Olsen原創
2024-10-24 19:43:02691瀏覽

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

在SQL 中對包含數字的字串列進行排序

此查詢涉及對包含數字的字串列進行排序,其中預設排序演算法將數字與在沒有前導零的數字後面加上前導零,可能會改變預期的順序。使用者尋求一種方法來單獨使用 SQL 來覆寫此行為。

此問題的有效解決方案包括使用 CAST 函數和 SUBSTRING 函數隔離字串的數字部分。透過提取數字子字串,CAST 函數將其轉換為整數值,以便進行正確的排序。

以下是程式碼範例:

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

例如,在名為如果「name」的值為「a 1」、「a 12」、「a 2」和「a 3 ”,則查詢將產生以下結果:

+----------+
+-- name --+
+----------+
+-- a 1 ---+
+-- a 2 ---+
+-- a 3 ---+
+-- a 12 --+

此方法有效地對基於數值的列,同時保留字母數字前綴。

以上是如何在保留順序的同時對 SQL 中包含數字的字串列進行排序?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn