Я хочу иметь простое условие в моем где положение, на одной из колонн, как:запутанным, где положение в SQL Server
Когда @PostTypeid is null
то где должен быть PostTypeid in (4,5)
и если @PostTypeid is not null
тогда, когда положение должно быть PostTypeId = @PostTypeId
Я использую случай для этой цели, но я думаю, что меня путают с синтаксисом. Вот что я придумал до сих пор:
(PostTypeid = case(@PostTypeId) when null then in (4,18) else @PostTypeId end)
Ошибка при использовании в, я не думаю, что это допустимый синтаксис. Каков правильный способ сделать это? Благодарю. Я попытался переложить фигурные скобки на несколько других мест, но напрасно.
Благодаря
Я даже использовал '' (case (@PostTypeId), когда null, а затем PostTypeId в (4, 18) else PosttypeId = @PostTypeId end) '' и sql вообще не понравилось! – iamserious
Ваша логика не имеет смысла. @PostTypeid может быть null и 4 одновременно? – gbn
@gbn: если передано 4 или 18, тогда мне нужно выбрать сообщения в этом типе id, если ничего не передано (передается значение null), я хочу выбирать сообщения из обоих идентификаторов. Означает ли моя логика, что она может быть нулевой и 4 одновременно? Я не могу это увидеть (из-за пива, который у меня был вчера), можете ли вы объяснить больше? – iamserious