|
|
@@ -517,20 +517,7 @@ 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));
|
|
|
- $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;
|
|
|
+ return "SELECT * FROM (SELECT {$limit} * FROM (SELECT TOP {$offset} {$fields} FROM {$table} {$alias} {$joins} {$conditions} {$group} {$order}) AS Set1 {$rOrder}) AS Set2 {$order2}";
|
|
|
} else {
|
|
|
return "SELECT {$limit} {$fields} FROM {$table} {$alias} {$joins} {$conditions} {$group} {$order}";
|
|
|
}
|