SELECT
YEAR,
Strata,
Strata_Name,
FORMAT([%]/10000, 'P') [%]
FROM
[dbo].[Depression_in_California]
WHERE
Strata_Name = 'Male'
ORDER BY [%] desc;
該列是浮動不為空

uj5u.com熱心網友回復:
因為您正在將浮點值轉換為字串,然后進行排序。解決方案是修復您的格式以具有固定的小數位數并正確對齊。另一種解決方案是也選擇百分比列并按該列排序。
注意:我認為格式化和其他此類操作應該降級到 GUI 而不是 SQL
uj5u.com熱心網友回復:
您有一個名為的數字列,[%]并且您也在命名您的計算列[%]。計算值的型別(如果為nvarchar )。
正如@Tarik 所指出的,看起來 SQL Server 正在按計算列(別名)對結果進行排序。我認為使用不同的別名會更清楚,例如:
SELECT
YEAR,
Strata,
Strata_Name,
FORMAT([%]/10000, 'P') PercentageOfDepression /* <-- calculated nvarchar */
FROM
[dbo].[Depression_in_California]
WHERE
Strata_Name = 'Male'
ORDER BY [%] desc; /* <-- numeric [%] */
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/336022.html
標籤:sql sql-order-by
