易截截图软件、单文件、免安装、纯绿色、仅160KB

sql newid()随机函数

从A表随机取2条记录,用SELECT TOP 10 * from ywle order by newid()
order by 一般是根据某一字段排序,newid()的返回值是uniqueidentifier ,order by newid()随机选取记录是如何进行的
newid()在扫描每条记录的时候都生成一个值, 而生成的值是随机的, 没有大小写顺序. 所以最终结果再按这个排序, 排序的结果当然就是无序的了
或者
select   top   10   *,newid()   as   Random   from   ywle where   ywlename='001'   ordey   by   Random
下者效率要高些
因为newid()返回的是uniqueidentifier类型的唯一值。newid()每次产生的值都不一样,那么根据这样的值进行排序,每次的结果也是不一样的。
原理是 把所有的ID出取然后用随机函数取出其中一个,然后用这个随机取到的ID去数据库里再取出记录,所有代价有点大。
 
sql server的随机函数newID()和RAND()
SELECT * from Northwind..Orders ORDER BY NEWID()
--随机排序
SELECT TOP 10 * from Northwind..Orders ORDER BY NEWID()
--从Orders表中随机取出10条记录
示例
A.对变量使用 NEWID 函数
以下示例使用 NEWID() 对声明为 uniqueidentifier 数据类型的变量赋值。在测试 uniqueidentifier 数据类型变量的值之前,先输出该值。
-- Creating a local variable with DECLARESET syntax.
DECLARE @myid uniqueidentifier
SET @myid = NEWID()
PRINT 'Value of @myid is '+ CONVERT(varchar(255), @myid)
下面是结果集:
Value of @myid is 6F9619FF-8B86-D011-B42D-00C04FC964FF
注意: 
NEWID 对每台计算机返回的值各不相同。所显示的数字仅起解释说明的作用。
随机函数:rand()
在查询分析器中执行:select rand(),可以看到结果会是类似于这样的随机小数:0.36361513486289558,像这样的小数在实际应用中用得不多,一般要取随机数都会取随机整数。那就看下面的两种随机取整数的方法:
1、
A:select  floor(rand()*N)  ---生成的数是这样的:12.0
B:select cast( floor(rand()*N) as int)  ---生成的数是这样的:12
2、
A:select ceiling(rand() * N)  ---生成的数是这样的:12.0
B:select cast(ceiling(rand() * N) as int)  ---生成的数是这样的:12
    其中里面的N是一个你指定的


相关文档:

SQL Server之分布式事务

SQL Server之分布式事务
 
 收藏
--> Title  : SQL Server之分布式事务
 
--> Author : wufeng4552
 
--> Date   : 2009-11-11
 
SQL Server之分布式事务
 
(一)概念:
 
分布式事务是涉及来自两个或多个源的资源的事务。Microsoft® SQL Serv ......

一些简单的mysql SQL语句备忘

放在这里备忘,老是忘记怎么写。
mysql> create database book;
mysql> use book;
Database changed
mysql> create table email_message(key_mail_messages INTEGER,
-> date_created VARCHAR(19),
-> date_updated varchar(19),
-> date_email varchar(19),
-> addr_from va ......

Java程序连接SQL Server

第一:要设置SQL Server的TCP/IP服务
1) 打开SQL Server Configuration Manager”,双击“SQL Server 2005网络配置”,点击“*** 的协议” (注意:***代表实例命名,例如:accpDB的协议)
2) 选择右边窗口中的“TCP/IP”协议,右键� ......

sql 游标的使用

一个例子:从tszl表中查出数据,根据cs字段的值决定往BOOK_SERIAL表中插入几行数据。
declare @num int
declare @id varchar(60)
declare @classbm varchar(60)
set @classBm='101'
declare id cursor for select id,cs from  [tszl]
open id
fetch next from id into @id,@num
while @@fetch_status!=-1
&nb ......

Access、SQLServer、Oracle常见SQL语句应用区别


Access、SQLServer、Oracle常见SQL语句应用区别
关劲松 PMP
如果要兼容Access、SQL Server、Oracle三个数据库版本;我们在编写SQL语句的过程中,尽量使用一些通用的语句,但还是有些方面有些区别避免不了,现简单总结一下。
以下A代表Access,S代表SQL Server,O代表Oracle
1、取当前系统时间
A:Select Now()
S:Selec ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号