我有一个包含字母数字数据的列([Usage_in_GB]),当我想对它进行排序时,它不会这样做。我已经在SO上找到了这个问题的答案,但它们都不适合我的需要,所以我所做的是将字母数字列([用法])转换为浮点数,但现在我无法获得前5个结果。
这是我的查询:
SELECT
[Name],
[Model],
[Usage_in_GB],
[Number_of_Clients],
[Date],
CAST (REPLACE([Usage_in_GB],'GB','') AS FLOAT) AS [Usage]
FROM[dbo].[Devices]
WHERE([Usage] IN (SELECT TOP 5 [Usage]
FROM [dbo].[Devices]
GROUP BY [Usage]
ORDER BY [Usage] DESC)
)
答案 0 :(得分:1)
你只是以这种方式尝试:
SELECT TOP 5
[Name],
[Model],
[Usage_in_GB],
[Number_of_Clients],
[Date],
CAST(REPLACE([Usage_in_GB],'GB','') AS FLOAT) AS [Usage]
FROM[dbo].[Devices]
ORDER BY [Usage] DESC