我从要选择的表中得到奇怪的结果。请考虑下表:
USERID TICKETSASSIGNED
1 0
100 0
101 0
102 0
103 0
现在,如果我有以下sql:
SELECT TOP 1 USERID
FROM TABLEX
ORDER BY TICKETSASSIGNED
我期望得到的结果是“ 1”,但在大多数情况下,我一直获得“ 100”,这是第二个记录。由于
TICKETSASSIGNED
的值都为“ 0”,因此它随机选择它认为是TOP 1的那个,因为这是我要订购的字段。在这种情况下,要获得正确的值“ 1”,我还必须在USERID
上订购。有任何想法吗?
最佳答案
我期望得到的结果是“ 1”,但在大多数情况下,我一直获得“ 100”,这是第二个记录。由于TICKETSASSINGED值全为“ 0”,因此它随机选择它认为是TOP 1的那个,因为这是我要订购的字段。在这种情况下,要获得正确的值“ 1”,我还必须在USERID上订购。
这是所有SQL中的默认行为-如果没有ORDER BY子句,则不会保证顺序,在这种情况下,您将不会按相关数据进行排序,因此数据库会任意选择一行。
用:
ORDER BY TICKETSASSIGNED, USERID
关于sql - SQL选择顶部1,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3453592/