我有一個T SQL的問題。我想用WHERE
子句中的CASE WHEN
子句來擴充我的聲明,該子句取決於局部變量@ counter2。T SQL擴展在哪裏條款與案件當我的訂單由
當@ counter2的值爲'2'時,應使用FETCH NEXT子句擴展整個語句,如下所示,以在10 000行之後停止。
目前我有以下測試語句,但它不能像這樣工作。如果@ counter2變量的值不是'2',則該語句應該在條款where ID not in (1,2)
之後完成。
是否有可能這樣做?
DECLARE @counter2 INT = 0;
WHILE @counter2 <= 1
BEGIN
SET @counter2 = @counter2 + 1
SELECT *
FROM companies
WHERE ID NOT IN (1,2)
AND CASE WHEN @counter2 = 2 THEN
ORDER ORDER ID
OFFSET 0 ROWS
FETCH NEXT 10000 ROWS ONLY
END
END
你在想什麼'FETCH NEXT 10000行ONLY'將在這裏做? –
'where'和'order by'是單獨的從句。如果你想在where子句中使用單詞'和',你可以添加另一個過濾器,而不是一個order by子句。 –
可以使用'if'在兩個可能的select語句之間進行選擇,或者使用基於'row_number()'而不是'fetch'(或更合適的'top')的手動分頁。 – Luaan