2014-09-25 53 views
0

特定行我有一個SQL Server表稱爲pluginProspects,我有以下幾列..SQL Server 2008中 - 獲取樣200-300

FirstName 
LastName 
Email 
AmonutOfEmployees 
AnnualRevenue 

在這個表我行萬,我想創建一個SQL語句,該語句允許我檢索行200-300甚至行300-400或者我想要的行。

我用這個代碼工作了一段時間,但我想添加特定的WHERE子句,它並沒有顯示出100個結果,它顯示出我喜歡50或70或w/e取決於這些結果具體的行號

SELECT * 
FROM 
    (SELECT 
     ROW_NUMBER() OVER (ORDER BY demoID DESC) AS rownum, 
     demoID, RecordStatus, Email, FirstName, LastName, AmountOfEmployees, 
     AnnualRevenue 
    FROM 
     pluginProspects) AS Salaries1 
WHERE 
    rownum BETWEEN 1 * {STARTNUMBERHERE} - 100 AND 1 * {STARTNUMBERHERE} 
    AND (RecordStatus = '2014 Lead') 
    AND (AmonutofEmployees > 10) 
ORDER BY 
    AmountOfEmployees DESC 

正如你可以看到{STARTNUMBERHERE}我可以把100,200,300,400等創建,直到我那麼在我的表添加(AmountofEmployees > 10)

還有噸,其工作完全正常尋呼效果有不到10名員工的前景,所以這有時只會顯示10或20重新而不是前100個結果。

任何人都知道我應該這樣做的正確方法?不,我不能使用存儲過程對我想要做的,它必須是純粹的基於SQL

+2

移動子查詢 – Max 2014-09-25 19:21:15

+0

Max中的哪裏clausole(rownum分頁除外)可以修改並顯示我的意思嗎?對不起,它沒有一個很好的可顯示格式我只是將它複製出來,只是將它存儲在一行文本框中 – eqiz 2014-09-25 19:37:07

+0

他說要在子查詢中移動where子句(recordstatus和pluginprospects)。因此'FROM pluginProspects WHERE RecordStatus = ...' – 2014-09-25 19:53:46

回答

1

馬特,

最大的意思改變它看起來像這樣

SELECT * 
FROM 
    (SELECT 
     ROW_NUMBER() OVER (ORDER BY demoID DESC) AS rownum, 
     demoID, RecordStatus, Email, FirstName, LastName, AmountOfEmployees, 
     AnnualRevenue 
    FROM 
     pluginProspects 
    WHERE (RecordStatus = '2014 Lead') 
      AND (AmonutofEmployees > 10)) AS Salaries1 
WHERE 
    rownum BETWEEN 1 * {STARTNUMBERHERE} - 100 AND 1 * {STARTNUMBERHERE} 
ORDER BY 
    AmountOfEmployees DESC