Дмитрий Озеров, подскажите пожалуйста, еще по этой теме. Мне нужно сделать поиск в выделенной области в нескольких слоях.
Что то типа такого. Еще пробовал использовать charindex вместо like.
| Код |
|---|
SEL ECT z.sys, z.[Наименование], z.[Категория строения]
fr om [zdaniya_soorujeniya_trial_1] as z, sa
where z.geometry.within([sa].geometry)
and z.[Наименование] like '%билей%'
UNI ON
(sel ect x.sys, x.[Наименование узла], x.[Адрес узла ввода]
fr om [Electronnaya_model_PEM_trial_1] as x, sa
where x.geometry.within([sa].geometry) and x.typeid = 3
and x.[Наименование узла] like '%билей%')
UNI ON
(sel ect c.sys, c.[Наименование узла], c.[Адрес узла ввода]
fr om [ts_sushp_zim] as c, sa
wh ere c.geometry.within([sa].geometry) and c.typeid = 3
and c.[Наименование узла] like '%билей%') |
Проблемы тут 2:
1) Нужно в 3-х местах исправлять строку поиска ( '%билей%' ), каждый раз для нового поиска. Я хочу естественно делать это один раз. Пробовал делать так:
| Код |
|---|
Declare @qwe char(100);
set @qwe = 'билей';
SEL ECT z.sys, z.[Наименование], z.[Категория строения]
fr om [zdaniya_soorujeniya_trial_1] as z, sa
where z.geometry.within([sa].geometry)
and z.[Наименование] like @qwe |
Это не работает. Const тоже пробовал. Как позже выяснилось, если просто написать:
| Код |
|---|
Declare @qwe char(100);
set @qwe = 'билей';
SEL ECT @qwe |
В ответе будет - билей. Но вот если написать допустим
| Код |
|---|
Declare @qwe char(100);
set @qwe = 'билей';
SEL ECT @qwe, z.sys
fr om [layer] as z |
в ответе помимо сисов выдаст столбец '@qwe'. Это и есть первая проблема, не понимаю как это работает.
2) Допустим можно потерпеть и исправлять строку для поиска в трех местах, ответ выдает правильно, но тут нюанс. Если в ответе нажимать на сисы, для перемещения экрана на объект - работает почему то с одним слоем, причем не активным. В данном случае, если из примера, то [zdaniya_soorujeniya_trial_1]. Если на сисы этого слоя нажимать - экран перемещает, если из других слоев то не перемещает.