[英]query to select a specified number of rows
想象一個簡單的查詢:
SELECT name, lastname FROM people
假設它返回6行。 我需要做的是返回ROWS Mod 4等於0的行數。因此,如果查詢通常返回6行,則它應返回2行,其中名稱和姓氏為NULL。 計算返回的行並生成必要的聯合選擇很容易,但是我想知道是否可以在sql中進行。 我知道,聽起來有點愚蠢,您可能正在考慮告訴我找到其他解決方案,但這是解決我問題的最簡單方法;]
對於oracle:
SELECT name, lastname FROM people
UNION ALL
SELECT NULL, NULL FROM people
WHERE RowNum <= (Select mod(Count(*),4) from people)
對於mssql:(> = 2005)
SELECT name, lastname FROM people
UNION ALL
select null, null from
(
SELECT row_number() over(order by name) r FROM people
)
WHERE r <= (Select Count(*) % 4 from people)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.