簡體   English   中英

sql server連接查詢問題

[英]sql server join query issue

我正在使用此查詢進行分頁

 SELECT * 
 FROM 
    (SELECT ROW_NUMBER() OVER (ORDER BY {0} {1}) AS RowNum, * 
     FROM Cars 
     WHERE IdOwner = {2}) AS Rows 
 WHERE RowNum > {3} AND RowNum < {4}

我想對2個表進行分頁查詢,而不僅僅是像現在這樣對一個表進行分頁查詢。

SELECT * 
FROM 
    (SELECT ROW_NUMBER() OVER (ORDER BY {0} {1}) AS RowNum, 
            Cars.Id, Cars.Make, Cars.Model, Color.Name 
     FROM Cars 
     INNER JOIN Color ON Cars.ColorId = Color.Id 
     WHERE IdOwner = {2}) AS Rows 
WHERE RowNum > {3} AND RowNum < {4} 

Incorrect syntax near the keyword 'WHERE'.收到Incorrect syntax near the keyword 'WHERE'.

問題解決了。 謝謝大家,我真是個菜鳥:(

SELECT * 
FROM ( SELECT ROW_NUMBER() OVER ( ORDER BY c.Id  ) AS RowNum, 
       c.Id, c.Make, c.Model, d.ColorName 
       FROM Car AS c 
       INNER JOIN Color AS d 
       ON c.ColorId = d.Id WHERE c.IdOwner=1 ) AS Rows
WHERE RowNum > 0 AND RowNum < 11 

這可能是一個括號問題,您必須在IdOwner前面加上前綴。 請注意為您的{0}和{1}參數加上前綴:

SELECT ROW_NUMBER() OVER ( ORDER BY {0} {1} ) AS RowNum, 
       Cars.Id,Cars.Make, Cars.Model, Color.Name 
FROM (Cars INNER JOIN Color ON Cars.ColorId=Color.Id) 
WHERE Cars.IdOwner={2} 

c.Make被多次指定,“ AS行”已被刪除並且是必需的。

SELECT * 
FROM ( SELECT ROW_NUMBER() OVER ( ORDER BY c.Id  ) AS RowNum, 
       c.Id, c.Make, c.Model, d.ColorName 
       FROM Car AS c 
       INNER JOIN Color AS d 
       ON c.ColorId = d.Id WHERE c.IdOwner=1 ) AS Rows
WHERE RowNum > 0 AND RowNum < 11 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM