如何使用SQL按升序对以下字符串进行排序?我希望订单按数字顺序排列。
$15.00
$20.00
$5.00
$100.00
$1.00
答案 0 :(得分:1)
假设所有格式都相同 - 美元符号,一些数字,小数点和小数点后两位数 - 那么你可以使用这个技巧:
order by length(col) asc, col asc
某些数据库将length()
拼写为len()
。
如果字符串不是都具有统一格式,那么您应该将它们转换为数字以进行排序。如何执行此操作取决于未标记的数据库。
答案 1 :(得分:0)
如果您正在使用sql server,那么您可以通过以下方式执行此操作,或者第一种方法是将列数据类型转换为


 CREATE TABLE TEMP。 TEST1(SALE VARCHAR(25))
 INSERT INTO TEMP.TEST1 VALUES
('$ 15.00'),
('$ 20.00'),
('$ 5.00'),&#xA ;('$ 100.00'),('$ 1.00')

 SELECT SALE
 FROM TEMP.TEST1 CAST BY CAST(替换(销售,'$','')AS NUMERIC(10,2) ))
 代码>