Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Мучает вопрос: Вот почему алиас в ORDER BY работает а в WHERE - нет...  [new]
Молодой
Member

Откуда: Москва
Сообщений: 180
SQL 2005
SELECT 
CONVERT(VARCHAR(255),[ID]) + [Comment] Txt
FROM Tb1   WHERE 
CONVERT(VARCHAR(255),[ID]) + [Comment] LIKE '%36%'
-- WHERE Txt LIKE '%36%'
ORDER BY Txt
Давно мучают вопросы:
1) Почему не работает закоменченый WERE
2) А сколько раз вычисляется в итоге Txt: 1 или 2...
3) Есть ли возможность не дублировать код в сложных выражениях?
15 сен 11, 10:24    [11279321]     Ответить | Цитировать Сообщить модератору
 Re: Мучает вопрос: Вот почему алиас в ORDER BY работает а в WHERE - нет...  [new]
iljy
Member

Откуда:
Сообщений: 8711
Молодой
SQL 2005
SELECT 
CONVERT(VARCHAR(255),[ID]) + [Comment] Txt
FROM Tb1   WHERE 
CONVERT(VARCHAR(255),[ID]) + [Comment] LIKE '%36%'
-- WHERE Txt LIKE '%36%'
ORDER BY Txt
Давно мучают вопросы:
1) Почему не работает закоменченый WERE
2) А сколько раз вычисляется в итоге Txt: 1 или 2...
3) Есть ли возможность не дублировать код в сложных выражениях?


1. Логический порядок обработки инструкции SELECT
2. Зависит от оптимизатора, обычно 1.
3. Оберните вычисления в производную таблицу.
15 сен 11, 10:35    [11279390]     Ответить | Цитировать Сообщить модератору
 Re: Мучает вопрос: Вот почему алиас в ORDER BY работает а в WHERE - нет...  [new]
Молодой
Member

Откуда: Москва
Сообщений: 180
Полный синтаксис инструкции SELECT сложен...
...и фактический порядок выполнения МОЖЕТ отличаться от порядка в данном списке...

Оно вроде всё понятно,.... была надежда на наличие простого решения )
iljy - Спасибо.
15 сен 11, 10:55    [11279535]     Ответить | Цитировать Сообщить модератору
 Re: Мучает вопрос: Вот почему алиас в ORDER BY работает а в WHERE - нет...  [new]
trew
Member

Откуда: Москва
Сообщений: 2646
iljy,

Оберните вычисления в производную таблицу. Так наверное.
SELECT Txt
FROM 
(
SELECT CONVERT(VARCHAR(255),[ID]) + [Comment] Txt
FROM Tb1
) AS tb2  
WHERE Txt LIKE '%36%'

А сколько раз вычисляется в итоге Txt: 1 или 2...
Зависит от оптимизатора, обычно 1.
Как это проверить не понятно? Может кто пояснит, для начинающих?
15 сен 11, 10:57    [11279554]     Ответить | Цитировать Сообщить модератору
 Re: Мучает вопрос: Вот почему алиас в ORDER BY работает а в WHERE - нет...  [new]
SomewhereSomehow
Member

Откуда: Moscow
Сообщений: 2480
Блог
trew,

посмотреть план запроса
15 сен 11, 11:01    [11279579]     Ответить | Цитировать Сообщить модератору
 Re: Мучает вопрос: Вот почему алиас в ORDER BY работает а в WHERE - нет...  [new]
WarAnt
Member

Откуда: Питер
Сообщений: 2423
trew
iljy,

Оберните вычисления в производную таблицу. Так наверное.
SELECT Txt
FROM 
(
SELECT CONVERT(VARCHAR(255),[ID]) + [Comment] Txt
FROM Tb1
) AS tb2  
WHERE Txt LIKE '%36%'

А сколько раз вычисляется в итоге Txt: 1 или 2...
Зависит от оптимизатора, обычно 1.
Как это проверить не понятно? Может кто пояснит, для начинающих?

а какая разница сколько раз будет идти суммирование если оно по сравнение с неизбежным, при такой конструкции, fullscan настолько мизерно по времени, что смысла в его учете нету никакого:)
15 сен 11, 11:02    [11279594]     Ответить | Цитировать Сообщить модератору
 Re: Мучает вопрос: Вот почему алиас в ORDER BY работает а в WHERE - нет...  [new]
trew
Member

Откуда: Москва
Сообщений: 2646
SomewhereSomehow,

Помогите пожалуйста ссылкой, как анализировать план запросов?

К сообщению приложен файл. Размер - 82Kb
15 сен 11, 11:09    [11279670]     Ответить | Цитировать Сообщить модератору
 Re: Мучает вопрос: Вот почему алиас в ORDER BY работает а в WHERE - нет...  [new]
SomewhereSomehow
Member

Откуда: Moscow
Сообщений: 2480
Блог
trew,

Анализ запроса
Оптимизация производительности запросов SQL Server
гуглите, инфы море кругом...
15 сен 11, 11:17    [11279736]     Ответить | Цитировать Сообщить модератору
 Re: Мучает вопрос: Вот почему алиас в ORDER BY работает а в WHERE - нет...  [new]
trew
Member

Откуда: Москва
Сообщений: 2646
SomewhereSomehow,

Спасибо за ссылки, буду изучать.
15 сен 11, 11:23    [11279796]     Ответить | Цитировать Сообщить модератору
 Re: Мучает вопрос: Вот почему алиас в ORDER BY работает а в WHERE - нет...  [new]
iljy
Member

Откуда:
Сообщений: 8711
Молодой
Полный синтаксис инструкции SELECT сложен...
...и фактический порядок выполнения МОЖЕТ отличаться от порядка в данном списке...

В ссылке написано про логический порядок, а отличаться может физический. Компиляция происходит в соответствии с логическим порядком.
15 сен 11, 11:35    [11279925]     Ответить | Цитировать Сообщить модератору
 Re: Мучает вопрос: Вот почему алиас в ORDER BY работает а в WHERE - нет...  [new]
SomewhereSomehow
Member

Откуда: Moscow
Сообщений: 2480
Блог
iljy
Компиляция происходит в соответствии с логическим порядком.
Имеете ввиду, что скомпилирвоанный план запроса соответсвует логическому порядку?
15 сен 11, 12:03    [11280220]     Ответить | Цитировать Сообщить модератору
 Re: Мучает вопрос: Вот почему алиас в ORDER BY работает а в WHERE - нет...  [new]
iap
Member

Откуда: Москва
Сообщений: 47142
SomewhereSomehow
iljy
Компиляция происходит в соответствии с логическим порядком.
Имеете ввиду, что скомпилирвоанный план запроса соответсвует логическому порядку?
Мне кажется, что единственное требование -
результат должен соответствовать логическому порядку.
Остальное совершенно неважно.
15 сен 11, 12:36    [11280520]     Ответить | Цитировать Сообщить модератору
 Re: Мучает вопрос: Вот почему алиас в ORDER BY работает а в WHERE - нет...  [new]
SomewhereSomehow
Member

Откуда: Moscow
Сообщений: 2480
Блог
iap
SomewhereSomehow
пропущено...
Имеете ввиду, что скомпилирвоанный план запроса соответсвует логическому порядку?
Мне кажется, что единственное требование -
результат должен соответствовать логическому порядку.
Остальное совершенно неважно.
А, теперь понятно о чем вы.
15 сен 11, 12:51    [11280618]     Ответить | Цитировать Сообщить модератору
 Re: Мучает вопрос: Вот почему алиас в ORDER BY работает а в WHERE - нет...  [new]
iap
Member

Откуда: Москва
Сообщений: 47142
SomewhereSomehow
iap
пропущено...
Мне кажется, что единственное требование -
результат должен соответствовать логическому порядку.
Остальное совершенно неважно.
А, теперь понятно о чем вы.
Ошибочка вышла?
Я ж в первый раз написал...
15 сен 11, 14:20    [11281400]     Ответить | Цитировать Сообщить модератору
 Re: Мучает вопрос: Вот почему алиас в ORDER BY работает а в WHERE - нет...  [new]
SomewhereSomehow
Member

Откуда: Moscow
Сообщений: 2480
Блог
iap,

Опа! Получается так, глаз дал осечку! А вот нечего за других отвечать
15 сен 11, 14:49    [11281692]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить