我想前言,我沒有寫這個。我今天早些時候繼承了它,我一直在努力尋找解決方案。下面的代碼庫工作 - 除了成本每平方英尺以Alpha順序而不是數字返回。更改ORDER BY導致「錯誤轉換數據類型」
SELECT
CTE.Suite, CTE.Building, CS.Address, CS.City, CS.State, CTE.Tenant,
CTE.AverageCharges, CTE.SQFT, CTE.CostSQFT, CTE.TenantType
FROM cteInvoices as CTE
...
ORDER BY
CASE @Order
WHEN 'Suite' THEN CTE.Suite
WHEN 'Cost' THEN cast(CTE.costSQFT as varchar)
END
我改變了年底情況如下:
ORDER BY
CASE @Order
WHEN 'Suite' THEN CTE.Suite
WHEN 'Cost' THEN CTE.costSQFT
END
那固定的費用排序,但是,當我選擇的套件進行排序,我得到:
Msg 8114, Level 16, State 5, Procedure rCostSQFTcsort, Line 17
Error converting data type varchar to numeric.
我這個晚上大部分時間都在進行這項工作,而我似乎沒有做任何事情來修復它 - 如果有的話,它往往會讓事情變得更糟。我希望第二組眼睛可以在這個問題上提出一些看法。
回覆:'鑄成varchar'請閱讀:http://sqlblog.com/blogs/aaron_bertrand/ archive/2009/10/09/bad-habits-to-kick-declaring-varchar-without-length.aspx –