正常工作,我在與使用CASE
語句來改變我的ORDER BY
語句在存儲過程中的問題。情況下不得在SQL Server存儲過程
我送一個參數,@sortBy
,其中包含列通過命令的名稱。
我的問題是,CASE
語句也適用於大多數列,但不是別人:
SELECT * FROM TapeView
ORDER BY
CASE
WHEN @sortBy = 'BackupJobType' THEN [BackupJobType]
WHEN @sortBy = 'ItemID' THEN [ItemID]
WHEN @sortBy = 'MediaType' THEN [MediaType]
WHEN @sortBy = 'Category' THEN [Category]
WHEN @sortBy = 'Description' THEN [Description]
WHEN @sortBy = 'PlantName' THEN [PlantName]
WHEN @sortBy = 'BackupType' THEN [BackupType]
WHEN @sortBy = 'UserID' THEN [UserID]
END
出於某種原因,這工作得很好,每列除BackupJobType
和Description
。
我已經檢查了正在發送的參數值和列的名稱,並且是100%肯定,他們是正確的。
我有另一個頁面上的幾乎相同的查詢,這兩列的工作正常那裏。
任何想法?
編輯:我忘了提,所有這些列是VARCHAR數據類型
發佈一些樣本輸出給我們展示了它是如何不工作。 – user2989408
原因可能與所有必須轉換爲相同類型的列有關。沒有例子,很難說出發生了什麼。 –
它是如何不工作的問題仍然適用。 – Andrew