Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/sql-server-2008/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 2008 SQL Server 2008使用LIMIT关键字无法工作_Sql Server 2008 - Fatal编程技术网

Sql server 2008 SQL Server 2008使用LIMIT关键字无法工作

Sql server 2008 SQL Server 2008使用LIMIT关键字无法工作,sql-server-2008,Sql Server 2008,这个查询是MySql select a.id, a.name, a.vehicle, a.amt, a.date (select id from tbl1 where date < a.date and vehicle = a.vehicle LIMIT 0,1) as prv FROM root_tbl a WHERE amt <> 0 我需要SQL Server中的此查询。您能帮助我吗。SQL Se

这个查询是MySql

select
   a.id,
   a.name,
   a.vehicle,
   a.amt,
   a.date
   (select id 
    from tbl1
    where date < a.date and vehicle = a.vehicle
    LIMIT 0,1) as prv
FROM
   root_tbl a
WHERE
   amt <> 0
我需要SQL Server中的此查询。您能帮助我吗。

SQL Server不支持限制

如果要获取表的前x行,必须使用TOP,如从tbl1中选择TOP 10*

要实现偏移量等效,有几种技术,例如子查询向结果集中添加行数,以及在父查询中按筛选所需偏移量

SELECT *
FROM (
    SELECT 
        id,
        ROW_NUMBER() OVER (ORDER BY id) AS RowNum   
    FROM tbl1
    ) T
WHERE RowNum BETWEEN 51 AND 75 -- Similar to LIMIT 50,25
对于您的特定查询,您似乎只需要一个TOP就可以实现最高效的查询,因此以下内容适用于您的查询

select
    a.id,
    a.name,
    a.vehicle,
    a.amt,
    a.date
    (select top (1) id from tbl1 where date < a.date and vehicle=a.vehicle)as prv
FROM tbl1 a
LIMIT是MySQL中使用的一个非ANSI标准兼容的自定义扩展,在SQL Server中不存在。您需要使用SELECT TOP n。。。。。