簡體   English   中英

查詢以選擇指定的行數

[英]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.

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