[英]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()
您的代碼看起來像 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.