所以我正在看这个sql
SELECT COUNT(1)
FROM
(SELECT *
FROM EVENT
WHERE END_DATE IS NULL
ORDER BY
CASE EVENT_TYPE
WHEN 'E'
THEN 1
WHEN 'C'
THEN 2
ELSE 3
END,
START_DATE ASC
) a
我想知道如果我们将其改为
,每次都会给出相同的结果SELECT COUNT(1)
FROM
(SELECT *
FROM EVENT
WHERE END_DATE IS NULL
) a
因为我只想要计算为什么要使用订单?
答案 0 :(得分:3)
你的假设是正确的。如果您只想查找子查询中的记录总数,那么排序无关紧要。但请注意,您在第二个版本中甚至不需要子查询:
SELECT COUNT(*)
FROM EVENT
WHERE END_DATE IS NULL;
答案 1 :(得分:2)
ORDER BY
对您的情况没有任何影响。
你可以缩短它:
SELECT COUNT(*)
FROM EVENT
WHERE END_DATE IS NULL
答案 2 :(得分:2)
您想要的只是COUNT
不依赖订购。您可以进一步将查询简化为
SELECT COUNT(1)
FROM EVENT
WHERE END_DATE IS NULL
答案 3 :(得分:2)
由于您使用count函数,因此无需添加order,因此result将始终返回相同的值。