KumbiaPHP/ActiveRecord

View on GitHub
Query/sqlsrv_limit.php

Summary

Maintainability
A
0 mins
Test Coverage
<?php
/**
 * KumbiaPHP web & app Framework
 *
 * LICENSE
 *
 * This source file is subject to the new BSD license that is bundled
 * with this package in the file LICENSE.txt.
 * It is also available through the world-wide-web at this URL:
 * http://wiki.kumbiaphp.com/Licencia
 * If you did not receive a copy of the license and are unable to
 * obtain it through the world-wide-web, please send an email
 * to license@kumbiaphp.com so we can send you a copy immediately.
 *
 * @category   Kumbia
 * @package    ActiveRecord
 * @subpackage Query
 *
 * @copyright  Copyright (c) 2005-2016  Kumbia Team (http://www.kumbiaphp.com)
 * @license    http://wiki.kumbiaphp.com/Licencia     New BSD License
 */

namespace Kumbia\ActiveRecord\Query;

/**
 * Adiciona limit y offset a la consulta sql en mssql
 *
 * @param  string   $sql    consulta select
 * @param  int   $limit  valor limit
 * @param  int   $offset valor offset
 * @return string
 */
function sqlsrv_limit(string $sql, int $limit = \null, int $offset = \null): string
{
    if ($limit !== null) {
        $sql   = \preg_replace('/(DELETE|INSERT|SELECT|UPDATE)/i', '${1} TOP '.$limit, $sql);
    }

    if ($offset !== \null) {
        $sql .= " OFFSET $offset";
    }

    return $sql;
}