Onderstaande functie gebruik ik voor paging
Is er een manier om deze te vereenvoudigen, want zoals je ziet zitten er hierin 3 op gelkaar gelijkende sql's. Aangezien sommige van deze sql's iets van 50 pagina's zijn, wordt het al snel onoverzichtelijk . Hoe is dit overzichtelijker te maken ?
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
| parameters toevoegen:
@statusid int,
@Pagenumber int,
@PageSize int,
@SortBy varchar(100)
)
as
begin
set nocount on
declare @TotalRows int
declare @FirstSelectingRow int
declare @LastSelectingRow int
select @TotalRows =
(count(bedrijfid) from bedrijven where bedrijfstatus = @statusid )
select @FirstSelectingRow = (@Pagenumber - 1) * @PageSize + 1
if (@FirstSelectingRow <= @TotalRows)
begin
set rowcount @FirstSelectingRow
select @FirstSelectingRow = (select * from bedrijven
where bedrijfstatus = @statusid
Order By
CASE WHEN @SortBy='Achternaam' THEN CONVERT(char(50), Achternaam) + CONVERT(char(50), Voornaam)
WHEN @SortBy='Salaris' THEN CONVERT(varchar(50), Salaris)
WHEN @SortBy='ID' THEN ID
set rowcount @PageNumber
select * from bedrijven where bedrijfstatus = @statusid)
where primarykey >= @FirstSelectingRow
Order By
CASE WHEN @SortBy='Achternaam' THEN CONVERT(char(50), Achternaam) + CONVERT(char(50), Voornaam)
WHEN @SortBy='Salaris' THEN CONVERT(varchar(50), Salaris)
WHEN @SortBy='ID' THEN ID
end
set nocount off
end |
Is er een manier om deze te vereenvoudigen, want zoals je ziet zitten er hierin 3 op gelkaar gelijkende sql's. Aangezien sommige van deze sql's iets van 50 pagina's zijn, wordt het al snel onoverzichtelijk . Hoe is dit overzichtelijker te maken ?