如何在同一个SQL查询中查询两个不同的内容

如何在同一个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

但是,我想返回度量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
  ,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有什么问题?