
суть вот в чем.
в ЛоцияПДМ+ делаю отчет по всей базе, но с использованием запроса для предварительного отбора. отчет нужен для поиска определенных объектов по определенным ключевым словам, сейчас 4 слова, поиск по 4-м атрибутам. надо как то разобраться с той ситуацией, когда какой-либо из параметров поиска НЕ введен. сейчас я это делаю так:
Код: Выделить всё
select av1.object_id
from
lsdbo.attrib_value av1
,lsdbo.value_string vs1
where
av1.attrib_id = 100000191200011
and
av1.attrib_id = vs1.attrib_id and av1.value_id = vs1.id
and
vs1.value like case @obj2 when '' then '%' else '%'+@obj2+'%' end
идея такая. я хочу как то изменить не параметры запроса (после оператора where, например), а вообще исключить этот блок из результирующего запроса. другими словами, на основе того, какие параметры поиска введены, склеить определенную строку запроса, в которой был бы поиск только указанных параметров в соответствующих атрибутах.
как это можно сделать в чистом Transact-SQL, чтобы потом это можно было вставить в условия предварительного отбора?
в Transact-SQL есть конструкции IF... ELSE и CASE ... WHEN... THEN... ELSE, но никак не могу их вставить в запрос так, чтобы хотя бы ошибок не было
