转换错误导致的动态订单

时间:2012-11-03 16:05:48

标签: sql-server sql-server-2008 tsql

我正在尝试通过pubs数据库执行动态订单并获得以下错误 当我尝试使用@sort_order = 2

Msg 245,Level 16,State 1,Line 6 将nvarchar值'Pavlova'转换为数据类型int时,转换失败。

This is the article

SELECT * FROM Paging
WHERE seq > (@page_nbr - 1) * @page_size
  AND seq <= @page_nbr * @page_size
ORDER BY CASE
    WHEN @sort_order = 1 THEN ProductID
    WHEN @sort_order = 2 THEN ProductName
    ELSE CategoryID
END

1 个答案:

答案 0 :(得分:2)

ProductIDProductNameCategoryID属于不同类型。 CASE的所有案例都需要评估为相同的类型。

查看此主题以获取其他选择:https://stackoverflow.com/a/751659/1373170

接受的答案(多个案例陈述)和ROW_NUMBER()方法似乎都有效。