【发布时间】:2014-02-27 00:26:10
【问题描述】:
我偶然发现了一个随机代码 ID 生成器,但我不知道它是如何工作的。
SELECT TOP (5) c1
FROM
(
VALUES
('A'), ('B'), ('C'), ('D'), ('E'), ('F'), ('G'),
('3'), ('4'), ('5'), ('6'), ('7'), ('8'), ('9')
) AS T1(c1)
ORDER BY ABS(CHECKSUM(NEWID()))
我看过以下内容:
- 选择 NEWID() -> E8E142CC-A918-4776-AA99-2D33DC80FE28
- 选择 CHECKSUM('E8E142CC-A918-4776-AA99-2D33DC80FE28') -> -2089106226
- 选择 ABS(-2089106226) -> 2089106226
如果我然后尝试执行“2089106226 订购”,它显然会失败
那么“ABS(CHECKSUM(NEWID()))”返回的是什么,这种排序方式又叫什么?
【问题讨论】:
标签: sql sql-server sql-order-by