ITPub博客

首页 > 数据库 > SQL Server > SQL Server SQL语句中的函数调用与Oracle SQL语句函数调用一个有趣的差别

SQL Server SQL语句中的函数调用与Oracle SQL语句函数调用一个有趣的差别

原创 SQL Server 作者:abstractcyj 时间:2013-12-02 11:47:56 0 删除 编辑
create table t1(col numeric)
declare @i int = 0
while @i <= 100
 begin
  set @i = @i + 1
  insert into t1(col) values(@i)
 end


执行以上脚本,向t1表中插入了从1到100的100行记录
写了如下的SQL
select COL, RAND() from t1 order by RAND();
本来期望能打乱查询的结果,但从结果来看,rand()函数值在查询中被调用了一次,而不是我所期望的100次(因为有100行)。这样的话不能达到结果
newid可以达到结果。



如果是Oracle,函数应是以行为单位执行的:

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/8520577/viewspace-1061833/ ,如需转载,请注明出处,否则将追究法律责任。

下一篇: SQL Server递归查询
请登录后发表评论 登录
全部评论
曾从事java方向开发多年。近年已经转入数据库方向。主要擅长SQL优化,Oracle数据库问题诊断,Oracle备份与恢复等。服务于医药物流,医院等行业

注册时间:2010-01-26

  • 博文量
    602
  • 访问量
    1091618