度量快速开发平台-专业、快速的软件定制快开平台

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
热搜: 部件 流程 SQL
查看: 1467|回复: 2
打印 上一主题 下一主题

[分享] SQL Server : 几个特殊函数(RAND,CHECKSUM, NEWID)

[复制链接]

78

主题

634

帖子

1598

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1598
跳转到指定楼层
楼主
发表于 2020-5-28 09:26:48 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
这一篇我们来捋捋在T-SQL中可能会用到的几个特殊的函数
1. 随机数: RAND
返回从 0 到 1 之间的随机 float 值。
语法: RAND ( [ seed ] )seed
提供种子值的整数表达式(tinyint、smallint 或 int)。如果未指定 seed,则 Microsoft SQL Server 数据库引擎 随机分配种子值。对于指定的种子值,返回的结果始终相同。
随机数是我们经常会用到的,几乎所有的语言都支持产生随机数。而且函数都差不多。例如在VBA和VB中也是用RAND,在C#中用RANDOM等等
【注意】我相信很多朋友都对于彩票那些数字很感兴趣.其实说白了,那是一个随机数(如果电脑开票的话). 那么,如果我们能猜到那个seed,就能模拟出来想要的号码。这不是天方夜谭,我曾经听说台湾就曾经有人这么做过,而且每期必中。后来据说被逮起来了,说是有内幕交易,其实人家冤枉啊。早期的彩票比较粗糙,确实可能才出来的。

2. 校验和值:CHECKSUM
返回按照表的某一行或一组表达式计算出来的校验和值。CHECKSUM 用于生成哈希索引。
语法:CHECKSUM ( * | expression [ ,...n ] )
*
指定对表的所有列进行计算。如果有任一列是非可比数据类型,则 CHECKSUM 返回错误。非可比数据类型有 text、ntext、image、XML 和 cursor,还包括以上述任一类型作为基类型的 sql_variant。
expression
除非可比数据类型之外的任何类型的表达式。
返回值是int
CHECKSUM 对其参数列表计算一个称为校验和的哈希值。此哈希值用于生成哈希索引。如果 CHECKSUM 的参数为列,并且对计算的 CHECKSUM 值生成索引,则结果是一个哈希索引。它可用于对列进行等价搜索。
CHECKSUM 满足哈希函数的下列属性:在使用等于 (=) 运算符比较时,如果两个列表的相应元素具有相同类型且相等,则在任何两个表达式列表上应用的 CHECKSUM 将返回同一值。对于该定义,指定类型的 Null 值被作为相等进行比较。如果表达式列表中的某个值发生更改,则列表的校验和通常也会更改。但只在极少数情况下,校验和会保持不变。因此,我们不推荐使用 CHECKSUM 来检测值是否更改,除非应用程序可以容忍偶尔丢失更改。请考虑改用 HashBytes。指定 MD5 哈希算法时,HashBytes 为两个不同输入返回相同结果的可能性比 CHECKSUM 小得多。
表达式的顺序影响 CHECKSUM 的结果值。用于 CHECKSUM(*) 的列顺序是表或视图定义中指定的列顺序。其中包括计算列。
【注意】这个函数我用的不多。理解不深。但对于它可以把一个文本产生一串数字感觉很有意思。

3.全局唯一编号:NEWID
创建 uniqueidentifier 类型的唯一值。
语法:
NEWID ( )
这个函数总是能返回一个新的GUID号码,它永远不会重复,而且毫无规律。

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

198

主题

1313

帖子

3782

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
3782
沙发
发表于 2020-5-28 16:20:03 | 只看该作者
用到了么?这个可以使用的。有几个函数不错。
回复 支持 反对

使用道具 举报

348

主题

3572

帖子

9316

积分

论坛元老

Rank: 8Rank: 8

积分
9316
板凳
发表于 2020-5-28 20:24:31 | 只看该作者
王爱东 发表于 2015-12-28 16:20
用到了么?这个可以使用的。有几个函数不错。

先涨哈姿势,有备无患
若現在就覺得失望無力,未來那麽遠妳該怎麽扛...
————————————————————————致自己
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|重庆度量科技  本站关键词:快速开发平台

GMT+8, 2024-11-16 22:13 , Processed in 0.174880 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表