2016-06-22 2 views
2

У меня есть два типа: TypeA и TypeB.Поле IS NULL в IIF()

TypeA имеет две серии - Series1 и Series2

TypeB имеет одну серию - Series1

Ниже приведен запрос, мне удалось придумать:

SELECT 
    * 
FROM 
    TypesTable 
WHERE 
    Series1 = 'A3bBa#$#0sB2' 
AND 
    Series2 = IIF(Type != 'TypeB', 'vH2f##gYtL&', NULL); 

У меня возникают проблемы с Series2 = IIF(...) часть

Ho ж я могу сказать, мой запрос, что

если Type = TypeA, Series2 равно данному Series2 значению пользователем

если Type = TypeB, Series2 является NULL

Я с трудом с IIF, так как если Type == 'TypeB'Series2 должен быть Series2 IS NULL, а не Series2 = NULL

ответ

1

Провести проверку условий в предложении WHERE.

SELECT 
    * 
FROM 
    TypesTable 
WHERE 
    Series1 = 'A3bBa#$#0sB2' 
AND 
    ((Type = 'TypeA' AND Series2 = 'vH2f##gYtL&') OR (Type = 'TypeB' AND Series2 IS NULL)) 
+0

решена моя проблема. Спасибо большое – TheQuestioner