mirror of
https://github.com/kamilwylegala/cakephp2-php8.git
synced 2024-11-15 03:18:26 +00:00
Fixed pagination for SqlServer
This commit is contained in:
parent
c1e674f9c1
commit
f1108b2ef1
1 changed files with 14 additions and 1 deletions
|
@ -517,7 +517,20 @@ class Sqlserver extends DboSource {
|
|||
$offset = intval($offset[1]) + intval($limitVal[1]);
|
||||
$rOrder = $this->__switchSort($order);
|
||||
list($order2, $rOrder) = array($this->__mapFields($order), $this->__mapFields($rOrder));
|
||||
return "SELECT * FROM (SELECT {$limit} * FROM (SELECT TOP {$offset} {$fields} FROM {$table} {$alias} {$joins} {$conditions} {$group} {$order}) AS Set1 {$rOrder}) AS Set2 {$order2}";
|
||||
$limit2 = str_replace('TOP', '', $limit);
|
||||
if (!$order) {
|
||||
$order = 'ORDER BY (SELECT NULL)';
|
||||
}
|
||||
|
||||
$pagination = "
|
||||
SELECT {$limit} * FROM (
|
||||
SELECT {$fields}, ROW_NUMBER() OVER ({$order}) AS ssma\$rownum
|
||||
FROM {$table} {$alias} {$joins} {$conditions} {$group}
|
||||
) AS ssma\$sub1
|
||||
WHERE ssma\$sub1.[ssma\$rownum] > {$limit2}
|
||||
ORDER BY ssma\$sub1.[ssma\$rownum]
|
||||
";
|
||||
return $pagination;
|
||||
} else {
|
||||
return "SELECT {$limit} {$fields} FROM {$table} {$alias} {$joins} {$conditions} {$group} {$order}";
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue