powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Вычисление выражений
5 сообщений из 5, страница 1 из 1
Вычисление выражений
    #32064202
vap
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Иногда в запросе вычисляется выражение и оно используется в условии.
Есть ли способ не повторять 2 раза выражение CONVERT(VARCHAR,ID)+ '-' + NAME

Код: plaintext
1.
2.
SELECT CONVERT(VARCHAR,ID)+ '-' + NAME AS Result
FROM SysObjects
WHERE LEN(CONVERT(VARCHAR,ID)+ '-' + NAME)> 20 
...
Рейтинг: 0 / 0
Вычисление выражений
    #32064221
Фотография VVG_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
select * from 
(SELECT CONVERT(VARCHAR,ID)+ '-' + NAME AS Result FROM SysObjects) as foo
WHERE LEN(RESULT)> 20 
...
Рейтинг: 0 / 0
Вычисление выражений
    #32064308
vap
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
VVG_ вы обошли повтор, но возможно он будет в 2 раза дольше выполняться.
Иногда приходится писать сложные запросы с длинными выражениями, хотелось бы их не дублировать.
...
Рейтинг: 0 / 0
Вычисление выражений
    #32064324
Glory
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2vap
но возможно он будет в 2 раза дольше выполняться.

Если вы посмотрите на планы выполнения предложенных запросов, то увидите, что они абсолютно одинаковы.
...
Рейтинг: 0 / 0
Вычисление выражений
    #32064330
vap
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ok, убедили
SQL Server достаточно умен, чтобы повторно не сканировать временную выборку.
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Вычисление выражений
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]