最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

MySQL之解決字符串?dāng)?shù)字的排序失效問題

 更新時間:2023年08月26日 10:51:00   作者:一碗謙謙粉  
這篇文章主要介紹了MySQL之解決字符串?dāng)?shù)字的排序失效問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教

MySQL字符串?dāng)?shù)字的排序失效問題

問題描述

最近在做老項目維護時,有客戶反映說,視圖的序號排序有問題。

這里的序號,相當(dāng)于是排序號,由用戶自定義輸入排序號,來自定義某些數(shù)據(jù)的前后位置。

但是檢查了一下SQL,又是沒有問題的。

"select * from contractFil where istmp=0 order by sort desc";

后來,查看表設(shè)計,發(fā)現(xiàn)列sort是varchar類型的。

所以不能直接排序。

解決

在不修改原有設(shè)計的情況下,只能改SQL了,我們需要先把字符串轉(zhuǎn)數(shù)字。

字符串轉(zhuǎn)數(shù)字的三種方式:

(1)+0

order by (sort+0) desc

(2)用函數(shù)CAST(value as type)或CONVERT(value, type)

type可為DECIMAL (浮點數(shù) )、SIGNED(整數(shù))、UNSIGNED (無符號整數(shù) )

order by CAST(sort as SIGNED) desc
order by CONVERT(sort ,SIGNED)desc

MySQL中ORDER BY排序錯誤

記錄一個錯誤

這是使用format函數(shù)來進行小數(shù)點后兩位保留,使用這個會導(dǎo)致排序錯誤。

SELECT
	enterprise_key_id,
	enterprise_name_cn,
	occupied_area,
	registered_place_key_id,
	registered_place_name,
	registered_capital,
	registered_capital_type_key_id,
	registered_capital_type_name,
	-- ROUND(sum( IFNULL( tax_aa, 0 ) ) / 10000,2) AS last_year_taxtotal 
	FORMAT( IFNULL( sum( IFNULL( tax_aa, 0 ) ) / 10000, 0 ), 2 ) AS last_year_taxtotal 
FROM
	etl_enterprise_base_info 
WHERE
	archived_year_month LIKE CONCAT( '%', YEAR ( DATE_SUB( NOW( ), INTERVAL 1 YEAR ) ), '%' ) AND registered_place_key_id = 8
GROUP BY
	enterprise_key_id 
ORDER BY last_year_taxtotal DESC

使用ROUND函數(shù)來進行排序就沒有出錯。

總結(jié)

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

最新評論

泗洪县| 新乡县| 郯城县| 东源县| 梁平县| 石棉县| 常德市| 白城市| 加查县| 长沙县| 伽师县| 大悟县| 咸阳市| 萝北县| 盐源县| 图片| 永顺县| 长治市| 宁陵县| 陈巴尔虎旗| 浮山县| 大渡口区| 上饶市| 靖西县| 马山县| 阿尔山市| 龙州县| 西乡县| 沙田区| 清苑县| 宝应县| 响水县| 吉林市| 称多县| 定边县| 通城县| 商水县| 阳城县| 阳江市| 阿巴嘎旗| 罗甸县|