我有以下查询:
1
SELECT TOP 1
CASE WHEN latency=-1
THEN 'Down'
ELSE 'Up'
END AS status
FROM
@pings_temp
ORDER BY datetime DESC;
2
SELECT TOP 1
CASE WHEN latency=-1
THEN 'Down'
ELSE 'Up'
END AS status,
CASE WHEN latency=-1
THEN
(
SELECT TOP 1
datetime
FROM
@downtimes_temp
ORDER BY
datetime DESC
)
ELSE NULL
END AS datetime
FROM
@pings_temp
ORDER BY datetime DESC;
第一个应该只产生“ Up ”,第二个应该在第一列中产生“ Up ”,在第二列中产生NULL。
但是,这不会发生。第一个查询完全按照它应该的方式执行,但是将第二列添加到 SELECT 会使查询变得疯狂,导致它从看似随机的列中读出“ Down ”和日期。