如何使用SQL按升序对以下字符串进行排序?我希望顺序按数字顺序排列。
$15.00
$20.00
$5.00
$100.00
$1.00
发布于 2018-06-03 02:56:57
假设所有的格式都相同--一个美元符号、一些数字、一个小数点以及小数点后的两个数字--那么您可以使用这个技巧:
order by length(col) asc, col asc
有些数据库将length()
拼写为len()
。
如果字符串并不都具有统一的格式,那么您应该将它们转换为数字进行排序。如何做到这一点取决于没有标记的数据库。
发布于 2018-06-03 04:17:18
如果您使用的是sql server,则可以使用下面的方法,或者第一种方法是转换列数据类型。
CREATE TABLE TEMP.TEST1 ( SALE VARCHAR(25))
INSERT INTO TEMP.TEST1 VALUES
( '$15.00'),
('$20.00'),
('$5.00'),
('$100.00'),('$1.00')
SELECT SALE
FROM TEMP.TEST1 ORDER BY CAST(REPLACE(SALE,'$','') AS NUMERIC(10,2))
https://stackoverflow.com/questions/50659989
复制相似问题