排序字段+0或者*1,類似 Java 把 其他類型轉換成字符串 比如 +“”;
一、對普通數字字符串字段排序
-- 方式一 SELECT * FROM xxxxxx WHERE STATUS = '1' ORDER BY ORDER_NUMBER + 0 DESC -- 方式二 SELECT * FROM xxxxx WHERE STATUS = '1' ORDER BY ORDER_NUMBER * 1 DESC
二、對double字段或其他帶小數的金額字段排序
1.利用sql語句中關鍵字的執行順序先在select后將字符串轉為DECIMAL類型在排序
SELECT SUM( cast( MONEY AS DECIMAL ( 18, 2 ) ) ) MONEYS, USER_ID FROM PRODUCT WHERE TYPE = '1004' GROUP BY USER_ID ORDER BY MONEYS DESC //MONEYS為select轉換后的字段值 LIMIT 10
2.sql函數說明
cast():
一、在mysql操作中我們經常需要對數據進行類型轉換。此時我們應該使用的是cast()或convert()。
二、兩者的對比
相同點:都是進行數據類型轉換,實現的功能基本等同
不同點:兩者的語法不同,cast(value as type) 、 convert(value,type)
三、所支持的類型如下:
二進制,同帶binary前綴的效果 : BINARY
字符型,可帶參數 : CHAR()
日期 : DATE
時間: TIME
日期時間型 : DATETIME
浮點數 : DECIMAL
整數 : SIGNED
無符號整數 : UNSIGNED
DECIMAL(xx,x):
MySQL DECIMAL數據類型用於在數據庫中存儲精確的數值。我們經常將DECIMAL數據類型用於保留准確精確度的列
舉例說明:DECIMAL(19,9)對於小數部分具有9位數字,對於整數部分具有19位
