Помогите разобраться с запросом

__Samuray__

Есть такой запрос в ХП (только он и есть):select (substring(ltrim([inf_obr] +' '),(charindex('inv№',[inf_obr] +' ') + 4), charindex(' ',[inf_obr] +' ',charindex('inv№',[inf_obr] +' '))-(charindex('inv№',[inf_obr] +' ') + 4))) as id_device from obr where (charindex('inv№',inf_obr +' ') <> 0)вроде бы все работает и в QA все нормально, но почему-то создается поле с 2000 символами (откуда?)А вот так нормально, но я не могу выбирать по явному количеству символов (в данном случае 11):select (substring(ltrim([inf_obr]),(charindex('inv№',[inf_obr]) + 4),11)) as id_device from obr where (charindex('inv№',inf_obr) <> 0)Проблема в том, что когда я это делаю из Фокса, то возвращается поле 2000 символов и автоматически превращается в мемо.Что делать? Подскажите оптимальный вариант запроса.
4 ответа

__Samuray__

ну так, приведите результат к нужному типу с помощью cast или convert


__Samuray__

Добавлю еще, что запрос прилично тормозит.


__Samuray__

Спасибо заработало, но вопрос остался - откуда эти 2000 символов?


__Samuray__

Добавлю еще, что запрос прилично тормозит.
Еще бы он от таких where не тормозил.