簡體   English   中英

有沒有一種簡單的方法可以從具有特定條件的數據表中選擇隨機記錄(大約 20 條)

[英]Is there a simple way to pick random records (about 20) from a data table with specific condition

這是我使用的代碼

SELECT * FROM   
(SELECT * FROM [table name] 
ORDER BY dbms_random.value)
WHERE rownum < 10

我只想從列 A = XYZ 的記錄中選擇隨機行。 我試圖在代碼中添加一個 WHERE 子句:

SELECT * FROM   
(SELECT * FROM [table name] 
WHERE [column A] = 'XYZ'
ORDER BY dbms_random.value)
WHERE rownum < 10

但出現錯誤。 任何反饋將不勝感激。

您可以在 SQL Server 中嘗試以下方法:

SELECT TOP 10 * FROM [table name] 
WHERE [column A] = 'XYZ'
ORDER BY newid()

有關 ORDER BY newid() 如何在 SO 帖子中工作的更多信息

您的代碼看起來像 Oracle 代碼。 它不識別標識符的方括號。 事實上,不要轉義它們——或者如果必須的話使用雙引號:

SELECT t.*   
FROM (SELECT t.*
      FROM t 
      WHERE columnA = 'XYZ'
      ORDER BY dbms_random.value
     ) t
WHERE rownum < 10;

在 SQL Server 中,相當於:

SELECT TOP (10) t.*
FROM t 
WHERE columnA = 'XYZ'
ORDER BY NEWID()

暫無
暫無

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

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