2016-06-14 4 views
-1

Ниже приведен мой код. Внутренний запрос возвращает значение null. Я хочу проверить, является ли возвращаемое значение нулевым, тогда мне нужно получить данные из другого запроса. Как я могу использовать, если в случае, как мой код в случаеЕсли условие в случае сервера sql

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

ответ

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 ...) 
     ) 
    ) 
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) 
) 
) 
+0

Не работает ..... – user2998990

Смежные вопросы