Eri*_*c S 7 sql-server sql-server-2014
我今天遇到了一个查询,它做了一些我以前从未见过的事情。它做了这样的事情:
SELECT
MIN(+ - schema_id) AS [WhatInTheWorld?],
MIN(schema_id) AS MinimumID,
MAX(+ - schema_id) AS [Uhhh],
MAX(schema_id) AS MaxID
FROM sys.objects
Run Code Online (Sandbox Code Playgroud)
这给出了以下结果:
WhatInTheWorld? MinimumID Uhhh MaxID
-4 1 -1 4
Run Code Online (Sandbox Code Playgroud)
“+”和“-”究竟是做什么的?
ype*_*eᵀᴹ 11
MIN(+ - schema_id)被解析为MIN( + (- schema_id) )which 与 相同MIN(- schema_id),所以它(数学上)*与-MAX(schema_id). 对于 MAX 也是如此。
*: 在某些边缘情况下,MIN/MAX(-x)可能会引发错误而- MAX/MIN(x)不会引发错误(因为否定适用于列的所有值,而仅适用于 MAX/MIN 值)。
| 归档时间: |
|
| 查看次数: |
217 次 |
| 最近记录: |