如果是sql server的情况

时间:2016-06-14 09:51:37

标签: sql-server-2012

以下是我的代码。内部查询返回null。我想检查返回的值是否为null然后我需要从其他查询中获取数据。我如何在案件内部使用,因为我的代码是以及

WHEN a.col1=105 THEN 
          (SELECT Title FROM Test WHERE ID =(SELECT TestID FROM Test2 WHERE ID = a.colID)).

2 个答案:

答案 0 :(得分:1)

您可以COALESECE()第一个查询,如果是NULL,则拨打第二个查询:

WHEN a.col1 = 105 THEN
    (
        SELECT Title
        FROM Test
        WHERE ID =
        COALESCE(
            (SELECT TestID FROM Test2 WHERE ID = a.colID),
            (SELECT ID FROM someOtherTable ...)
        )
    )

答案 1 :(得分:0)

你可以使用ISNULL函数返回值,如果不为null,如果为null,则返回第二个值:

WHEN a.col1=105 THEN 
  (SELECT Title FROM Test WHERE ID = ISNULL(
      (SELECT TestID FROM Test2 WHERE ID = a.colID), 
      (SELECT * FROM BLAH)
  )
)