1
ページ順ソート結果を取得するストアドプロシージャを作成したいが、私は、列を追加し、計算/計算されたデータでそれを埋める必要があります。現在、私は持っている計算されたデータ列を使用してページングされたソート結果を取得するストアドプロシージャ
ALTER proc [dbo].[pr_GetPagedSortedOrdersByUser]
(
@userid numeric(18,0),
@CurrentPage int,
@PageSize int,
@SortField varchar(200),
@SortOrder varchar(5),
@status varchar(50)
)
as
begin
with temp as
(
select *
,ROW_NUMBER() OVER (order by
CASE WHEN @SortField = 'orderdate' AND @SortOrder = 'Desc' THEN orderdate END DESC,
CASE WHEN @SortField = 'orderdate' THEN orderdate END,
CASE WHEN @SortField = 'netamount' AND @SortOrder = 'Desc' THEN netamount END DESC,
CASE WHEN @SortField = 'netamount' THEN netamount END,
CASE WHEN @SortField = 'id' AND @SortOrder = 'Desc' THEN id END DESC,
CASE WHEN @SortField = 'id' THEN id END
) AS ROWID
from tbOrder
where (@status='All' or [email protected])and [email protected]
)
select * ,
(
netamount - discount
) as 'Gross'
from temp
where rowid>((@CurrentPage - 1) * @PageSize) and rowid <(@CurrentPage * @PageSize + 1)
select count(*) as [count]
from tbOrder
where ([email protected] or @status='All')and [email protected]
end
注:Gross
列は、データベースに存在しないと私はあなたがちょうどあなたのcase文にあなたの計算された列を追加することができるはず@SortField
ありがとう –