SQLServer获取每组前10%的数据
sqlserver2005有关键字ntile(x)和over(partition by.. order by..)子句配合.
比如获取每个表的前10%个字段。
select id , name , colid , rn from (
select * , rn = ntile (10 )
over (partition by id order by colorder )
from syscolumns )t where rn = 1
相关文档:
MS Sqlserver 2005 集群是指数据库高可用性集群,能实现通常所说的“双机热备”,即当一台服务器停掉数据库服务可以自动转移到另一台服务器。
环境要求:
1、windows 2003 server企业版
&nb ......
在SQL Server 中插入一条数据使用Insert语句,但是如果想要批量插入一堆数据的话,循环使用Insert不仅效率低,而且会导致SQL一系统性能问题。下面介绍SQL Server支持的两种批量数据插入方法:Bulk和表值参数(Table-Valued Parameters)。
运行下面的脚本,建立测试数据库和表值参数。
代码如下:
--Create D ......
create proc P_QuerySplit
@sqlscript varchar(20), --表名/SQL语句
@pageSize int, --每页记录数
@pageIndex int, &nbs ......
MySQL:
SELECT column from table
ORDER BY RAND()
LIMIT 1
PostgreSQL:
SELECT column from table
ORDER BY RANDOM()
LIMIT 1
Microsoft SQL Server:
SELECT TOP 1 column from table
ORDER BY NEWID()
IBM DB2
SELECT column, RAND() as IDX
from table
ORDER BY IDX FETCH FIRST 1 ROWS ONLY
Thanks Ti ......