转载地址:http://www.sunya.org.cn/article.asp?id=662
我们经常想在一个数据表中随机地选取出数据来,比如随机生成考试试卷等。
利用 SQL Server 的 NewID() 方法就可以很轻松地达到这个目的。
NewID() 方法返回一个 GUID,如:EE95A489-B721-4E8A-8171-3CA8CB6AD9E4
在 select 表的时候,再增加一列为 NewID() 就可以了。
SQL 语句:select *, NewID() from table
这样每条记录后就会有一个随机的 GUID 值,我们再按这个 GUID 排一下序就可以达到乱序的效果。
SQL 语句:select *, NewID() as random from table order by random
我们要想随机取出 10 条数据,只要加上 TOP 10 就行了:
SQL 语句:select top 10 *, NewID() as random from table order by random
筛选唯一记录
SELECT * FROM tablename ORDER BY NEWID()
这个方法只适用于 SQL Server。
分享到:
相关推荐
这里我们将深入探讨如何在SQL中实现这一功能,以满足“SQL随机抽取N条记录”的需求。 首先,我们需要理解SQL的基本查询结构。SQL查询通常包括SELECT语句,用于指定要从数据库中检索哪些列;FROM语句,指定数据源;...
基于SQL的元组集随机抽取算法主要研究如何高效地从数据库中随机获取记录集合,避免了客户端复杂编程的低效性。在某些应用场景中,例如在线考试系统、计算机自动出题、座号安排等,需要从题库数据库中随机选取试题,...
在SQL Server中,有时我们需要处理含有重复数据的表,例如,我们可能希望只保留每组重复数据中的第一条记录。在给定的标题和描述中,提到了如何编写一个SQL语句来实现这一目标。以下是对这个话题的详细解释: 首先...
1. 筛选数据记录:使用 WHERE 子句来筛选数据记录,例如: ```sql SELECT * FROM 数据表 WHERE 字段名 = 字段值 ORDER BY 字段名 [DESC] ``` 2. 模糊查询:使用 LIKE 运算符来进行模糊查询,例如: ```sql SELECT * ...
这条 SQL 语句用于删除表 `tablename` 中的重复记录,保留每个组中 `id` 最大的记录。这种操作通常用于数据清理,例如: - 当表中有重复数据时,可以通过这种方式保留一条记录,删除其他重复项。 - 在导入大量数据...
- 删除重复记录通常涉及使用子查询来找出唯一的ID,然后从表中删除非唯一的记录。 以上就是一些SQL精编语句实例,它们涵盖了数据库操作的各个方面,包括数据的复制、查询、联接、分页、去重以及随机选择等。掌握...
- 从表中随机返回n条记录:结合ORDER BY和LIMIT实现。 - 查找空值:使用IS NULL来定位空值。 - 将空值转换为实际值:使用COALESCE()或NVL()函数。 - 模糊查询:使用LIKE运算符配合通配符。 2. 给查询结果排序 ...
19、说明:删除重复记录 1),delete from tablename where id not in (select max(id) from tablename group by col1,col2,...) 2),select distinct * into temp from tablename delete from tablename insert into...
- 当需要删除重复记录时使用。 --- #### 20. 获取所有表 **SQL语句**: ``` SELECT name FROM sysobjects WHERE type = 'U' ``` **说明**: - 这条语句用于获取数据库中所有的用户表名称。 **应用场景**: - 当...
SQL(Structured Query ...以上是SQL的一些经典操作,它们涵盖了数据库的基本操作,如数据复制、查询、连接、分页、排序以及处理重复记录等。在实际的数据库管理中,熟练掌握这些语句能够有效地进行数据处理和分析。
删除重复记录 ```sql Delete from 表 where id not in (select max(id) from 表 group by col1, col2); ``` 删除除了每组中ID最大的记录外的所有记录。 #### 20. 列出所有用户表 ```sql select name from ...
例如,在下面的示例中,我们首先通过`GROUP BY`子句计算每个销售订单的最大金额,然后使用`WHERE`子句筛选出金额大于40000的记录: ```sql SELECT amnt, sales_no FROM ( SELECT MAX(ac_rev_amnt) AS amnt, sales_...
- 重复调用指定的PL/SQL声明。 - **文件 – 目录**: - 设置默认目录。 - **文件 – 扩展名**: - 管理文件扩展名。 - **文件 – 备份**: - 控制备份文件的生成。 - **文件 – HTML/XML**: - 调整HTML/XML...
6. **查找重复记录**: 要找出同一表中具有相同属性的记录,可以使用`GROUP BY`和`HAVING COUNT(*) > 1`。例如:`select UserID from Accounts_Users where UserName is not null group by UserID having count (*)...
- **SQL跟踪**:启用SQL跟踪功能,记录SQL语句的执行细节,便于性能分析。 #### 六、专用SQL - **使用SQL窗口**:执行SQL语句或脚本,支持复杂的查询和数据操作。 - **结果表格处理**:展示SQL查询结果的方式,支持...
- `DELETE FROM tablename WHERE id NOT IN (SELECT MAX(id) FROM tablename GROUP BY col1, col2, ...)`删除除每个分组最大id之外的所有重复记录。 13. **列出数据库中的表名**: - 在SQL Server中,`SELECT ...