1、打开sql server 可视化工具。
2、打开sql server新建查询窗口。
3、输出添加语句 insert into jy_name(name,age,remark) values ('姓名',18,'备注')。
4、点击执行按钮,或者按执行快捷键F5。
5、执行成功后,记录添加完成。
6、输入sql查询语句 select from jy_name 后查询执行结果。
简单点实现可以在表中使用GUID,并自动生成,取数据时以此字段排序,使用完再更新此字段,10分钟的判断则通过加一个时间栏位就红了。基本保证是随机的。步骤如下:
建个测试表,假定tData是你需要的字段,tGUID、tUseTime为必须字段且不可为空
CREATE TABLE [dbo][tbaidu_t1]([tGUID] [uniqueidentifier] NOT NULL,
[tUseTime] [datetime] NOT NULL,
[tData] [int] NOT NULL
) ON [PRIMARY]
GO
ALTER TABLE [dbo][tbaidu_t1] ADD CONSTRAINT [DF_tbaidu_t1_tGUID] DEFAULT (newid()) FOR [tGUID]
GO
ALTER TABLE [dbo][tbaidu_t1] ADD CONSTRAINT [DF_tbaidu_t1_tUseTime] DEFAULT (getdate()) FOR [tUseTime]
GO
2 新建一个存储过程
CREATE PROC usp_tbaidu_GetRandDataAS
-- 选取指定数据
SELECT TOP 3 FROM tbaidu_t1
WHERE datediff(MI,tUsetime,GETDATE())>4
ORDER BY tGUID
-- 更新已选择数据的时间栏位
UPDATE tbaidu_t1 SET tUseTime = GETDATE()
WHERE tGUID IN(
SELECT TOP 3 tGUID FROM tbaidu_t1
WHERE datediff(MI,tUsetime,GETDATE())>4
ORDER BY tGUID
)
--更新所有数据对应的fGUID字段
UPDATE tbaidu_t1 SET tGUID = NEWID()
3执行存储过程就好了
EXEC usp_tbaidu_GetRandData
最近实现的一个系统中,遇到了这样的情况:需要从数据库表中随机读取n条记录,必须保证每条记录都不相同原来的想法是弄两个链表,第一个读取对应数据库表中的所有记录,根据每个记录的ID来生成这个链表;第二个链表是有选定的随机读取的记录生成的,这样从第一个链表中选定的,就可以剪掉,以后就不会被选种,把选中的添加到第二个链表中后来发现,在不同的数据库中完全可以用SQL语句来实现随机选定不同记录这里把不同数据库实现的语句粘在这里,以供需要的人来参考Select a random row with MySQL:SELECT column FROM tableORDER BY RAND()LIMIT 1Select a random row with PostgreSQL:SELECT column FROM tableORDER BY RANDOM()LIMIT 1Select a random row with Microsoft SQL Server:SELECT TOP 1 column FROM tableORDER BY NEWID()Select a random row with IBM DB2:SELECT column, RAND() as IDX FROM table ORDER BY IDX FETCH FIRST 1 ROWS ONLYSelect a random record with Oracle:SELECT column FROM( SELECT column FROM tableORDER BY dbms_randomvalue )WHERE rownum = 1
以上就是关于[Oracle]从一个表中随机取出6条记录的sql语句全部的内容,包括:[Oracle]从一个表中随机取出6条记录的sql语句、C# 数据库随机抽取数据、SQL语句如何实现从数据库表中查询随机数据的记录等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)