精华内容
下载资源
问答
  • sql Newid

    2016-07-27 11:07:21
    从A表随机取2条记录,用SELECT TOP 10 * FROM ywle order by newid() order by 一般是根据某一字段排序,newid()的返回值 是uniqueidentifier ,order by newid()随机选取记录是如何进行的 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是一个你指定的整数,如100,可以看出,两种方法的A方法是带有.0这个的小数的,而B方法就是真正的整数了。
        大致一看,这两种方法没什么区别,真的没区别?其实是有一点的,那就是他们的生成随机数的范围:
    方法1的数字范围:0至N-1之间,如cast( floor(rand()*100) as int)就会生成0至99之间任一整数
    方法2的数字范围:1至N之间,如cast(ceiling(rand() * 100) as int)就会生成1至100之间任一整数
    对于这个区别,看SQL的联机帮助就知了:
    ------------------------------------------------------------------------------------

    比较 CEILING 和 FLOOR

    CEILING 函数返回大于或等于所给数字表达式的最小整数。FLOOR 函数返回小于或等于所给数字表达式的最大整数。例如,对于数字表达式 12.9273,CEILING 将返回 13,FLOOR 将返回 12。FLOOR 和 CEILING 返回值的数据类型都与输入的数字表达式的数据类型相同。
    ----------------------------------------------------------------------------------
    现在,各位就可以根据自己需要使用这两种方法来取得随机数了^_^

    另外,还要提示一下各位菜鸟,关于随机取得表中任意N条记录的方法,很简单,就用newid():
    select top N *  from table_name order by newid() ----N是一个你指定的整数,表是取得记录的条数.

    从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是一个你指定的整数,如100,可以看出,两种方法的A方法是带有.0这个的小数的,而B方法就是真正的整数了。
        大致一看,这两种方法没什么区别,真的没区别?其实是有一点的,那就是他们的生成随机数的范围:
    方法1的数字范围:0至N-1之间,如cast( floor(rand()*100) as int)就会生成0至99之间任一整数
    方法2的数字范围:1至N之间,如cast(ceiling(rand() * 100) as int)就会生成1至100之间任一整数
    对于这个区别,看SQL的联机帮助就知了:
    ------------------------------------------------------------------------------------

    比较 CEILING 和 FLOOR

    CEILING 函数返回大于或等于所给数字表达式的最小整数。FLOOR 函数返回小于或等于所给数字表达式的最大整数。例如,对于数字表达式 12.9273,CEILING 将返回 13,FLOOR 将返回 12。FLOOR 和 CEILING 返回值的数据类型都与输入的数字表达式的数据类型相同。
    ----------------------------------------------------------------------------------
    现在,各位就可以根据自己需要使用这两种方法来取得随机数了^_^

    另外,还要提示一下各位菜鸟,关于随机取得表中任意N条记录的方法,很简单,就用newid():
    select top N *  from table_name order by newid() ----N是一个你指定的整数,表是取得记录的条数.

    展开全文
  • newid()

    2021-09-30 15:40:12
    select newid() as ID, time as time, symbol as symbol, expiration_month as expiration_month, transaction_fee as [transaction_fee], transaction_unit as [transaction_unit], settlement_fee as [settlement_...

    右击 编写脚本 create to 新查询编辑器窗口 改名字 run


    insert into 新表名
    select newid() as ID,
    time as time,
    symbol as symbol, 
    expiration_month as expiration_month, 
    transaction_fee as [transaction_fee], 
    transaction_unit as [transaction_unit],
    settlement_fee as [settlement_fee], 
    settlement_unit as [settlement_unit],
    [open_close_daily] as [open_close_daily]
    from  旧表名

    展开全文
  • sql 随机函数newid()和rand()详解* from northwind..orders order by newid()下者效率要高些select top 10 *,newid() as random from ywle where ywlename='001' ordey by random--随机排序select top 10 * from...

    sql 随机函数newid()和rand()详解

    * from northwind..orders order by newid()

    下者效率要高些

    select   top   10   *,newid()   as   random   from   ywle where   ywlename='001'   ordey   by   random

    --随机排序

    select top 10 * from northwind..orders order by newid()

    --从orders表中随机取出10条记录

    那就看下面的两种随机取整数的方法:

    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是一个你指定的整数,如100,可以看出,两种方法的a方法是带有.0这个的小数的,而b方法就是真正的整数了。

    大致一看,这两种方法没什么区别,真的没区别?其实是有一点的,那就是他们的生成随机数的范围:

    方法1的数字范围:0至n-1之间,如cast( floor(rand()*100) as int)就会生成0至99之间任一整数

    方法2的数字范围:1至n之间,如cast(ceiling(rand() * 100) as int)就会生成1至100之间任一整数

    展开全文
  • NEWID 时间

    2015-04-29 15:07:00
    CREATE OR REPLACE FUNCTION newid RETURN varchar2 ISO_ID NUMBER(30); V_RANDOM VARCHAR(10);V_TIME VARCHAR(25);BEGIN--取出2位随机数字SELECT TRUNC(DBMS_RANDOM.VALUE(0, 100)) INTO V_RANDOM FROM DUAL;--...

    CREATE OR REPLACE FUNCTION newid RETURN varchar2 IS
    O_ID NUMBER(30);

    V_RANDOM VARCHAR(10);
    V_TIME VARCHAR(25);
    BEGIN
    --取出2位随机数字
    SELECT TRUNC(DBMS_RANDOM.VALUE(0, 100)) INTO V_RANDOM FROM DUAL;
    --不够2位补齐
    IF LENGTH(V_RANDOM) = 1 THEN
    V_RANDOM := V_RANDOM || '0';
    END IF;
    --取出当前日期
    SELECT TO_CHAR(current_timestamp, 'YYYYMMDDHHMISSff6') INTO V_TIME FROM DUAL;
    --生成id
    O_ID := V_TIME || V_RANDOM;
    RETURN O_ID;
    END;

    转载于:https://www.cnblogs.com/sirius-snow/p/4466066.html

    展开全文
  • NEWID()

    千次阅读 2018-02-07 15:04:58
    之前对于newid()这个随机函数认识有些浅薄,从网上查阅了一些资料,心得如下:   1. newid()函数产生一个全球唯一的标识,该标识是由网卡号、CPU时钟组成。从而保证该函数调用的返回值是唯一的。 2. 该函数...
  • 在SQL Server中,随机函数有rand(),NewID(),其中rand是在0到1内随机取数,NewID则是生成随机的uniqueidentifier唯一标识符。 SELECT * FROM Northwind..Orders ORDER BY NEWID() –随机排序 SELECT TOP 10 * ...
  • SQL Server: 代码如下:Select TOP N * From TABLE Order By NewID() view plaincopy to clipboardprint?Select TOP N * From TABLE Order By NewID() Select TOP N * From TABLE Order By NewID()NewID()函数将...
  • SQLServer newid()函数

    2021-05-08 10:37:05
    newid() 方法随机产生一个标识符,类似于Guid.NewGuid() select newid()
  • SQL NEWID()随机函数

    2019-10-07 04:28:03
    从A表随机取2条记录,用SELECT TOP 10 * FROM ywle order by newid()order by 一般是根据某一字段排序,newid()的返回值 是uniqueidentifier ,order by newid()随机选取记录是如何进行的newid()在扫描每条记录的时候都...
  • sql newid()随机函数

    2019-09-26 18:46:03
    从A表随机取2条记录,用SELECT TOP 10 * FROM ywle order by newid() order by 一般是根据某一字段排序,newid()的返回值 是uniqueidentifier ,order by newid()随机选取记录是如何进行的 newid()在扫描每条记录的时候...
  • sql server newid() 的用法

    2019-07-08 15:11:00
    sql newid()随机函数 从A表随机取2条记录,用SELECT TOP 10 * FROM ywle order by newid()order by 一般是根据某一字段排序,newid()的返回值 是uniqueidentifier ,order by newid()随机选取记录是如何进行的...
  • SQL Server: Select TOP N * From TABLE Order By NewID() view plaincopy to clipboardprint?Select TOP N * From TABLE Order By...Select TOP N * From TABLE Order By NewID()NewID()函数将创建一个 uniqueid...
  • NEWID()生成随机唯一GUID编码 NEWID()在扫描每条记录的时候都生成一个值, 而生成的值是随机的, 没有大小写顺序. 所以最终结果再按这个排序, 排序的结果就是无序的。 因为NEWID()返回的是uniqueidentifier类型的唯一...
  • order by newid()的用法

    2019-08-11 15:35:22
    今天在写一个存储过程,需要随机取出一条记录来进行操作,于是想到了newid(),newid()在扫描每条记录的时候都生成一个值, 而生成的值是随机的, 没有大小写顺序. 所以最终结果再按这个排序, 排序的结果当然就是无序的...
  • Oracle中实现SQL中的newid() 生成GUID

    千次阅读 2019-11-06 15:30:55
    大家知道sql中可以使用newid()生成guid ORACLE也有相同的函数,sys_guid() ,但是生成的格式跟SQL中的有区别。 而且生成的是16位RAW格式的,用某些工具比如Navicat直接select乱码,pl/sql则不会乱码。 还是...
  • 理解newid()和newsequentialid() 原文:理解newid()和newsequentialid() 1.:newsequentialid 函数比起 newid 函数最大的好处是:如果你在一个 UNIQUEIDENTIFIER 字段上建立索引,使用 newid 产生的新...
  • (转)SQL NEWID()随机函数

    2019-09-27 19:20:00
    从A表随机取2条记录,用SELECT TOP 10 * FROM ywle order by newid()order by 一般是根据某一字段排序,newid()的返回值 是uniqueidentifier ,order by newid()随机选取记录是如何进行的newid()在扫描每条记录的...
  • newid()

    2009-08-07 20:48:00
    sql server的随机函数newID() SELECT * FROM Northwind..Orders ORDER BY NEWID() --随机排序 SELECT TOP 10 * FROM Northwind..Orders ORDER BY NEWID() --从Orders表中随机取出10条记录 更多游戏攻略:027游戏...
  • MSSQL:select top 10 * from [table] order by newid() ACCESS: 代码如下:‘以利用rs.move嘛 ‘如随机取10条 n = 10 ‘先要判断总记录数是否少于10,若小于10,则有多少取多少 if n>10 rs....
  • sql 随机函数newid()

    2015-08-19 20:33:00
    newid()返回的是uniqueidentifier类型的唯一值。newid()每次产生的值都不一样 从表中随机获取前N条记录 select top N * from table_name order by newid() 对于数据库字段类型为 uniqueidentifier时,所对应...
  • sqlserver 使用newid自动生成32位主键

    千次阅读 2019-10-25 09:30:50
    1.这种情况是生成36位大写的id select newid(); 2.这种情况是生成我们常见的32位的主键id select replace(lower(newid()),'-','')
  • 1.:newsequentialid 函数比起 newid 函数最大的好处是:如果你在一个 UNIQUEIDENTIFIER 字段上建立索引,使用 newid 产生的新的值是不固定的,所以新的值导致索引B+树的变化是随机的。而 newsequentialid 产生的新的...
  • ORDER BY NEWID()【原创】

    2019-10-01 22:59:17
    关于ORDER BY NEWID(),我是这么理解的:NEWID()是一个产生随即uniqueidentifier的函数,对于ORDER BY子句来说,如果后面接的是一个常量字符串,那么每次排序的顺序都是一样的,如果后面接的是变量,那么每次排序的...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 27,677
精华内容 11,070
关键字:

NEWID