如何从 SQL Server 中的表中获取 50% 的记录?

Ash*_*vat 3 sql sql-server select

假设我有一个包含 1000 行的表,并且我想要输出中的 50%。我怎样才能做到这一点?它有任何内置功能吗?

Rav*_*avi 6

用 :

SELECT 
    TOP 50 PERCENT * 
FROM 
    Table1;
Run Code Online (Sandbox Code Playgroud)

与 Row_number

SELECT 
        TOP 50 PERCENT Row_Number() over (order by Column1) ,* 
    FROM 
        Table1;
Run Code Online (Sandbox Code Playgroud)

注意Row_number应该有一个按列排序或按列分区的over子句