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 に答える