Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Индекс по размеру поля  [new]
Roman Mejtes
Member

Откуда: г. Пермь
Сообщений: 4222
Существует запрос с оператором APPLY, но это не так важно, внутри оператора идет запрос к таблице для возвращения каких то полей и в этом запросе идет сортировка по 4 полям, а точнее по размеру этого поля (поле типа VARCHAR)
то есть сортировка выглядит так
ORDER BY LEN(Поле1) AND LEN(Поле2) AND LEN(Поле3) AND LEN(Поле4)
но я не могу создать индекс в котором будет функция LEN(), при создании такого индекса SQL ругается, что я напечатал какую то хрень :) (что вполне в общем то очевидно, ведь в описании оператора написано, что в скобках должны быть поля, а не функции)

возникает вопрос, как же мне это сделать?
в принципе, как вариант можно ввести 4 вспомогательных поля, в которые заранее вбивать размер строки, а потом индексировать по этим столбцам, но возможно существуют более изящные способы ) надеюсь на гуру этого замечательного портала )
24 июл 12, 08:04    [12906167]     Ответить | Цитировать Сообщить модератору
 Re: Индекс по размеру поля  [new]
Roman Mejtes
Member

Откуда: г. Пермь
Сообщений: 4222
прошу прощения, что то меня на условиях заклинило. конечно же через запятую поля указаны
ORDER BY LEN(Поле1) DESC, LEN(Поле2) DESC, LEN(Поле3) DESC, LEN(Поле4) DESC
так же все поля сортированы в обратном порядке, но не думаю, что это принципиально важно
24 июл 12, 08:06    [12906171]     Ответить | Цитировать Сообщить модератору
 Re: Индекс по размеру поля  [new]
HandKot
Member

Откуда: Sergiev Posad
Сообщений: 3058
мне кажется, что единственный варинат создать вычисляемые поля и по ним делать индекс
24 июл 12, 08:15    [12906197]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить