Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Есть ли разница "Select f as x from t" или "Select x = f from t" ?  [new]
Samir
Member

Откуда: Азербайджан, г. Баку
Сообщений: 1382
В принципе название темы и есть вопрос.
11 апр 18, 17:50    [21330714]     Ответить | Цитировать Сообщить модератору
 Re: Есть ли разница "Select f as x from t" или "Select x = f from t" ?  [new]
TaPaK
Member

Откуда: Kiev
Сообщений: 6801
Samir,

нет, в чём подвох :)
11 апр 18, 18:06    [21330776]     Ответить | Цитировать Сообщить модератору
 Re: Есть ли разница "Select f as x from t" или "Select x = f from t" ?  [new]
iap
Member

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

можно ещё as не писать
11 апр 18, 18:30    [21330856]     Ответить | Цитировать Сообщить модератору
 Re: Есть ли разница "Select f as x from t" или "Select x = f from t" ?  [new]
Shakill
Member

Откуда: мск
Сообщений: 1880
iap
Samir,

можно ещё as не писать
к чему полумеры, можно вообще пробел между числом и алиасом не ставить
11 апр 18, 19:08    [21330975]     Ответить | Цитировать Сообщить модератору
 Re: Есть ли разница "Select f as x from t" или "Select x = f from t" ?  [new]
Glebanski
Member

Откуда: Msk ->NL
Сообщений: 308
iap,

x=f это токо Transact SQL
f as x - ANSI стандарт, можно и в оракле запустить.

"AS" лучше не пропускать, ибо тогда запрос будет нечитаемым
11 апр 18, 19:09    [21330976]     Ответить | Цитировать Сообщить модератору
 Re: Есть ли разница "Select f as x from t" или "Select x = f from t" ?  [new]
Glebanski
Member

Откуда: Msk ->NL
Сообщений: 308
Пардон, предыдущий ответ адресован автору :)
11 апр 18, 19:10    [21330985]     Ответить | Цитировать Сообщить модератору
 Re: Есть ли разница "Select f as x from t" или "Select x = f from t" ?  [new]
Andy_OLAP
Member

Откуда: я знаю, что Хапоэль Беэр-Шева - чемпион
Сообщений: 3151
Samir
В принципе название темы и есть вопрос.

Разница для разработчика расширения для SSMS или какой-нибудь утилиты, которая ожидает из таблицы или столбец или формулу с новым названием столбца as newcolumn - наверное, существует.

Для технического директора, который составил style-guide, наверное будет поводом наорать на разработчика, лишить премии и переставить руки обратно в плечи.

Для движка MSSQL наверное нет, теоретически. А практически парсер для текстов запросов пишут индусы, можно получить граблями в лоб очень весело и больно. Я бы не стал делать некошерные изыски "Select x = f from t".
11 апр 18, 23:57    [21331509]     Ответить | Цитировать Сообщить модератору
 Re: Есть ли разница "Select f as x from t" или "Select x = f from t" ?  [new]
Samir
Member

Откуда: Азербайджан, г. Баку
Сообщений: 1382
А можно как-то посмотреть код после парсинга?
12 апр 18, 09:26    [21332000]     Ответить | Цитировать Сообщить модератору
 Re: Есть ли разница "Select f as x from t" или "Select x = f from t" ?  [new]
aleksrov
Member

Откуда:
Сообщений: 948
Samir,

Флаги 3604, 8606, 8612, 8619, 2363.
Тока зачем вам это.
12 апр 18, 10:08    [21332192]     Ответить | Цитировать Сообщить модератору
 Re: Есть ли разница "Select f as x from t" или "Select x = f from t" ?  [new]
tunknown
Member

Откуда:
Сообщений: 758
Существенная разница для разработчика.

Прочесть запрос, найти поле и поменять его в длинном запросе на несколько экранов при совместимом именовании полей- сложно
select
   dateadd ( month , datediff ( month , 0 , getdate() ) , 0 ) as MonthCurrent
   ,id as ObjectId
   ,name as ObjectName
   ,stats_schema_ver as DumbField
from
   sysobjects


Гораздо проще при Transact-SQL именовании
select
   MonthCurrent = dateadd ( month , datediff ( month , 0 , getdate() ) , 0 )
   ,ObjectId = id
   ,ObjectName = name
   ,DumbField = stats_schema_ver
from
   sysobjects


Для тех, кому кроссплатформенность важна и кто выполняет полностью ОДИНАКОВЫЕ запросы на разных СУБД, конечно нужен первый метод. Много ли таких?
12 апр 18, 10:19    [21332254]     Ответить | Цитировать Сообщить модератору
 Re: Есть ли разница "Select f as x from t" или "Select x = f from t" ?  [new]
Владислав Колосов
Member

Откуда:
Сообщений: 7651
x = f устаревший формат.

Равно как select * from a,f,d where
12 апр 18, 16:41    [21334080]     Ответить | Цитировать Сообщить модератору
 Re: Есть ли разница "Select f as x from t" или "Select x = f from t" ?  [new]
TaPaK
Member

Откуда: Kiev
Сообщений: 6801
Владислав Колосов
x = f устаревший формат.

Равно как select * from a,f,d where

с чего это? или так вам хочется?
12 апр 18, 16:55    [21334138]     Ответить | Цитировать Сообщить модератору
 Re: Есть ли разница "Select f as x from t" или "Select x = f from t" ?  [new]
Eleanor
Member

Откуда:
Сообщений: 2793
Владислав Колосов
x = f устаревший формат

Устарело только 'string_alias' = expression, но не alias = expression
12 апр 18, 17:13    [21334227]     Ответить | Цитировать Сообщить модератору
 Re: Есть ли разница "Select f as x from t" или "Select x = f from t" ?  [new]
Владислав Колосов
Member

Откуда:
Сообщений: 7651
TaPaK,

мне также хочется и += =+ считать устаревшим.
12 апр 18, 17:56    [21334472]     Ответить | Цитировать Сообщить модератору
 Re: Есть ли разница "Select f as x from t" или "Select x = f from t" ?  [new]
Владислав Колосов
Member

Откуда:
Сообщений: 7651
TaPaK
Владислав Колосов
x = f устаревший формат.

Равно как select * from a,f,d where

с чего это? или так вам хочется?


Да уж, слава создателю, с 92-го года. В стандарте 89-го да, была такая форма записи. С 92-го используется CROSS JOIN.
12 апр 18, 18:09    [21334516]     Ответить | Цитировать Сообщить модератору
 Re: Есть ли разница "Select f as x from t" или "Select x = f from t" ?  [new]
TaPaK
Member

Откуда: Kiev
Сообщений: 6801
Владислав Колосов
TaPaK
пропущено...

с чего это? или так вам хочется?


Да уж, слава создателю, с 92-го года. В стандарте 89-го да, была такая форма записи. С 92-го используется CROSS JOIN.

вот это: "x = f устаревший формат." или вы любой бред покрываете последним предложением?
12 апр 18, 18:35    [21334589]     Ответить | Цитировать Сообщить модератору
 Re: Есть ли разница "Select f as x from t" или "Select x = f from t" ?  [new]
Владислав Колосов
Member

Откуда:
Сообщений: 7651
TaPaK,

хороший комментарий от Phil_Factor по этому вопросу: https://forum.red-gate.com/discussion/82188/code-analysis-incorrect-alias.
Если Вам нравиться играть в слова и формальности - пожалуйста, но факт остается фактом: old Sybase dialect.
12 апр 18, 19:10    [21334651]     Ответить | Цитировать Сообщить модератору
 Re: Есть ли разница "Select f as x from t" или "Select x = f from t" ?  [new]
TaPaK
Member

Откуда: Kiev
Сообщений: 6801
Владислав Колосов
TaPaK,

хороший комментарий от Phil_Factor по этому вопросу: https://forum.red-gate.com/discussion/82188/code-analysis-incorrect-alias.
Если Вам нравиться играть в слова и формальности - пожалуйста, но факт остается фактом: old Sybase dialect.

т.е. вы ссылаетесь на документ 2017 версии которая говорит что в каких-то будущих версиях сие может быть! будет считаться устаревшим? я так понимаю вы уже ; ставите после стейтмента, боюсь вы столько в сфере не проработаете когда указанные Deprecated Database Engine Features вступятв силу, а то я наверное с 10 лет жду устаревание нумерованных процедур(от которых дружно избавились оглядываясь даже на прямые отсылки документации) но воз и ныне там, так что не смешите людей
12 апр 18, 20:39    [21334841]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить