誰能想到一個理由這樣做:在SQL Server查詢中,實數值排序與浮點數不同嗎?
SELECT * FROM表A ORDER BY CAST(CAST(RealColumnA如爲nvarchar(50))爲float) --where RealColumnA在表
定義爲真正的我的一位前開發人員堅持認爲這是實現正確排序的必要條件。任何人都可以想到一個可能是真的理由嗎?
orderby子句中的表演是一個很大的表現殺手。但是我需要確保在刪除它之前沒有必要。
誰能想到一個理由這樣做:在SQL Server查詢中,實數值排序與浮點數不同嗎?
SELECT * FROM表A ORDER BY CAST(CAST(RealColumnA如爲nvarchar(50))爲float) --where RealColumnA在表
定義爲真正的我的一位前開發人員堅持認爲這是實現正確排序的必要條件。任何人都可以想到一個可能是真的理由嗎?
orderby子句中的表演是一個很大的表現殺手。但是我需要確保在刪除它之前沒有必要。
刪除它。 ORDER BY是你期望的。它肯定會是一個性能殺手。
關於SQL的規則#1。問題(和測試)所有(和其他人)的假設。 (特別是像這樣奇怪的人。)
這沒有任何意義。特別是與CAST
右後衛。
我唯一能看到的是如果你在float
中存儲非float
信息,並希望它按照意圖進行排序。我猜你可能想這一點:
1
10
11
12
2
3
4
5
6
7
8
9
但通常當那樣的存儲優化完成(如SSN或存儲在一個int一個電話號碼,說的),有假設上,這意味着左側隱填充任何預期的排序都與普通的數字排序相同。