使用$SQL对字符串中的数字进行排序

使用$SQL对字符串中的数字进行排序,sql,string,Sql,String,如何使用SQL按升序对以下字符串进行排序?我希望顺序是数字顺序 $15.00 $20.00 $5.00 $100.00 $1.00 假设所有数据都具有相同的格式—一个美元符号、一些数字、一个小数点和小数点后的两位数字—则可以使用以下技巧: order by length(col) asc, col asc 有些数据库将长度拼写为len 如果字符串并非都具有统一的格式,则应将其转换为数字进行排序。如何执行此操作取决于未标记的数据库。如果您使用的是sql server,则可以通过以下方法执行此操

如何使用SQL按升序对以下字符串进行排序?我希望顺序是数字顺序

$15.00
$20.00
$5.00
$100.00
$1.00

假设所有数据都具有相同的格式—一个美元符号、一些数字、一个小数点和小数点后的两位数字—则可以使用以下技巧:

order by length(col) asc, col asc
有些数据库将长度拼写为len


如果字符串并非都具有统一的格式,则应将其转换为数字进行排序。如何执行此操作取决于未标记的数据库。

如果您使用的是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))

您使用的是什么?对于金钱,您通常应该使用列类型的小数19,4。然后在显示值时,将货币符号放在前面。