如何在同一个SQL查询中查询两个不同的内容
但是,我想返回度量447和615的值,因为447将返回QSA.NumValue,615将返回QSA.DateTimeValue。我需要它在填充时返回,因此如果是615,则不允许DateTimeValue为NULL;如果是447,则不允许NumValue为NULL,因为简单OR语句包含在WHERE语句中时将不起作用 这可能吗如何在同一个SQL查询中查询两个不同的内容,sql,sql-server,Sql,Sql Server,但是,我想返回度量447和615的值,因为447将返回QSA.NumValue,615将返回QSA.DateTimeValue。我需要它在填充时返回,因此如果是615,则不允许DateTimeValue为NULL;如果是447,则不允许NumValue为NULL,因为简单OR语句包含在WHERE语句中时将不起作用 这可能吗 SELECT Q.ID ,Q.Title ,QS.ID ,QSA.QMID ,QSA.NumValue ,QSA.DateTimeValue
SELECT
Q.ID
,Q.Title
,QS.ID
,QSA.QMID
,QSA.NumValue
,QSA.DateTimeValue
,QM.MetricID
,S.Date
FROM
QSA
INNER JOIN QM
ON QSA.QMID = QM.ID
INNER JOIN QS
ON QSA.SessionID = QS.ID
INNER JOIN Q
ON QS.ID = Q.ID
INNER JOIN SQ
ON Q.ID = SQ.ID
INNER JOIN S
ON SQ.ID = S.ID
WHERE
QM.MetricID IN (447, 615)
AND QSA.DateTimeValue IS NOT NULL
提前谢谢。您可以在其中使用以下
:
WHERE
(QM.MetricID = 447 AND QSA.NumValue IS NOT NULL)
OR (QM.MetricID = 615 AND QSA.DateTimeValue IS NOT NULL)
你可以找这个
WHERE
1=CASE WHEN QM.MetricID = 447 AND QSA.NumValue NOT NULL THEN 1
WHEN QM.MetricID = 615 AND QSA.DateTimeValue IS NOT NULL THEN 1
ELSE 0
END
这个SQL有什么问题?