2
从表tblQuoteStatusChangeLog
我需要检查列NewQuoteStatusID
是否有其中的一个值(2,25或202),并选择最早的TimeStamp。 所以,如果它的价值2
,然后拿起TimeStamp
,如果它不具有价值2
然后检查是否有25
,拿起相应TimeStamp
,如果它不是那么检查202
,并挑选了合适的邮票。为什么COALESCE返回NULL而不是我需要的值?
因此从tblQuoteStatusChangeLog
我需要拿起StatusID 202的第一行,因为它是唯一的条件。
所以我有这个疑问:
SELECT
(SELECT TOP (1) Timestamp
FROM tblQuoteStatusChangeLog
WHERE NewQuoteStatusID = COALESCE (2,25,202) AND ControlNo = tblQuotes.ControlNo
ORDER BY Timestamp DESC) as DateQuoted
FROM tblQuotes
INNER JOIN tblMaxQuoteIDs ON tblQuotes.QuoteID = tblMaxQuoteIDs.MaxQuoteID
where tblQuotes.ControlNo = 50065
但由于某种原因,我得到了NULL
值结果
缺少什么我在这里? 谢谢
哦!它只适用于非'NULL'。得到它了。 谢谢。 然后让我们说,如果我将有值2和25.什么'IN'会拿起?第一个是2还是第二个是25? – Oleg
@Oleg。 。 。它会挑选所有匹配的。 'ORDER BY'和'TOP'决定了返回的内容。 –