ORDER BY NEWID()【原创】
關(guān)于ORDER BY NEWID(),我是這么理解的:
NEWID()是一個產(chǎn)生隨即uniqueidentifier的函數(shù),對于ORDER BY子句來說,如果后面接的是一個常量字符串,那么每次排序的順序都是一樣的,如果后面接的是變量,那么每次排序的結(jié)果有可能不同,注意了,是有可能不同,也就是說還有可能相同的情況。舉個例子:
SELECT * FROM Users ORDER BY money DESC,NEWID()
要想每次排序都不同的話,那么NEWID()必須是緊跟在ORDER BY子句后面的。例如:
SELECT * FROM Users ORDER BY NEWID(),money DESC
其實money已經(jīng)不起作用了。
對于排序的原理,我是這么理解的,不知是否正確,請大家批評:
每個數(shù)據(jù)庫和操作系統(tǒng)對于字符編碼的排列順序是有可能不同的,這就對ORDER BY的排序結(jié)果產(chǎn)生了影響。
依據(jù)ORDER BY的排序條件,對字段里的值進(jìn)行一一比較排序,形成最終的結(jié)果集。
由于NEWID()每次生成的值都不一樣,也就是形成了每次結(jié)果集里的記錄排列順序都是不同的。
轉(zhuǎn)載于:https://www.cnblogs.com/ProgRamMer-cSdn/archive/2008/10/13/1309870.html
總結(jié)
以上是生活随笔為你收集整理的ORDER BY NEWID()【原创】的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 华为畅享5多少钱啊?
- 下一篇: IE Firefox通用DOM