1

我正在尝试通过 pubs 数据库进行动态订单,并在尝试使用时收到以下错误@sort_order = 2

消息 245,级别 16,状态 1,第 6 行将 nvarchar 值“Pavlova”转换为数据类型 int 时转换失败。

这是文章

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
4

1 回答 1

2

ProductID, ProductName, 和CategoryID是不同的类型。CASE 的所有案例都需要评估为相同的类型。

查看此线程以获取其他替代方案:https ://stackoverflow.com/a/751659/1373170

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

于 2012-11-03T16:16:18.640 回答