protected function oldBuildOrderByAndLimit($sql, $orderBy, $limit, $offset)
{
$orderBy = $this->buildOrderBy($orderBy);
if ($orderBy === '') {
// ROW_NUMBER() requires an ORDER BY clause
$orderBy = 'ORDER BY (SELECT NULL)';
}
$sql = preg_replace('/^([\\s(])*SELECT(\\s+DISTINCT)?(?!\\s*TOP\\s*\\()/i', "\\1SELECT\\2 rowNum = ROW_NUMBER() over ({$orderBy}),", $sql);
if ($this->hasLimit($limit)) {
$sql = "SELECT TOP {$limit} * FROM ({$sql}) sub";
} else {
$sql = "SELECT * FROM ({$sql}) sub";
}
if ($this->hasOffset($offset)) {
$sql .= $this->separator . "WHERE rowNum > {$offset}";
}
return $sql;
}