Во всех стандартных отчетах используется следующий запрос для перечня списков компьютеров или других объектов:
begin
if (@__filterwildcard = '')
SELECT DISTINCT SYS.Netbios_Name0 from v_R_System SYS WHERE SYS.Client0=1 ORDER By SYS.Netbios_Name0
else
SELECT DISTINCT SYS.Netbios_Name0 from v_R_System SYS WHERE SYS.Client0=1
and SYS.Netbios_Name0 like @__filterwildcard
ORDER By SYS.Netbios_Name0
end
Он имеет много минусов. Например, для поиска компьютеров, начинающихся с "de" необходимо каждый раз ставить знак %: "de%". Также использование в данном запросе ключевых слов DISTINCT и ORDER BY вообще не имеет смысла.
Напрашивается более легковесный и удобный вариант:
select Name0
from v_R_System
where ((Name0 like @__filterwildcard+'%') or (Name0 like @__filterwildcard)) and Client0=1
group by Name0
Пользуйтесь на здоровье :)
Комментариев нет:
Отправить комментарий