Commit | Line | Data |
ac93965c |
1 | package # Hide from PAUSE |
2 | DBIx::Class::SQLAHacks::MSSQL; |
3 | |
4 | use base qw( DBIx::Class::SQLAHacks ); |
5 | use Carp::Clan qw/^DBIx::Class|^SQL::Abstract/; |
6 | |
9d2a1bb5 |
7 | sub _RowNumberOver { |
584d2dd1 |
8 | my ($self, $sql, $order, $rows, $offset ) = @_; |
9 | |
10 | $offset += 1; |
11 | my $last = $rows + $offset - 1; |
12 | my ( $order_by ) = $self->_order_by( $order ); |
13 | |
14 | $sql = <<"SQL"; |
15 | SELECT * FROM |
16 | ( |
17 | SELECT Q1.*, ROW_NUMBER() OVER( $order_by ) AS ROW_NUM FROM ( |
18 | $sql |
19 | ) Q1 |
20 | ) Q2 |
21 | WHERE ROW_NUM BETWEEN $offset AND $last |
22 | |
23 | SQL |
24 | |
25 | return $sql; |
ac93965c |
26 | } |
27 | |
28 | 1; |