SQL Server SQL語句中的函式呼叫與Oracle SQL語句函式呼叫一個有趣的差別

abstractcyj發表於2013-12-02
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部落格 ” ,連結:http://blog.itpub.net/8520577/viewspace-1061833/,如需轉載,請註明出處,否則將追究法律責任。

相關文章