SQL Server 2012 のストアド プロシージャに問題があります。
最初のテーブル:
[ProductId] [int] IDENTITY(1,1) NOT NULL,
[Name] [nvarchar](100) NOT NULL,
[Description] [nvarchar](500) NOT NULL,
[Category] [nvarchar](50) NOT NULL,
[Price] [decimal](16, 2) NOT NULL,
およびストアド プロシージャ:
CREATE procedure [dbo].[GetProductsPaging]
(@PageOffset bigint=0,
@PageSize bigint=5,
@OrderBy varchar(30) = 'ProductId',
@DescOrder bit = 0)
AS
BEGIN
IF @DescOrder = 0
BEGIN
SELECT * FROM [dbo].Products
ORDER BY
CASE @OrderBy
WHEN 'ProductId' THEN ProductId
WHEN 'Name' THEN Name
WHEN 'Category' THEN Category
WHEN 'Price' THEN Price
ELSE NULL
END ASC
OFFSET @PageOffset ROWS
FETCH NEXT @PageSize ROWS ONLY
END
ELSE
BEGIN
SELECT * FROM [dbo].Products
ORDER BY
CASE @OrderBy
WHEN 'ProductId' THEN ProductId
WHEN 'Name' THEN Name
WHEN 'Category' THEN Category
WHEN 'Price' THEN Price
ELSE NULL
END DESC
OFFSET @PageOffset ROWS
FETCH NEXT @PageSize ROWS ONLY
END
END
このように実行すると
EXEC dbo.GetProductsPaging 0, 0 ,'Price', 0
手順は問題なく機能しますが、これを使用する場合
EXEC dbo.GetProcedurePaging 0, 0, 'Name', 0
このエラーが発生します
データ型 nvarchar を数値に変換中にエラーが発生しました。
誰かがこれで私を助けることができますか? 回答ありがとうございます。