powered by simpleCommunicator - 2.0.39     © 2025 Programmizd 02
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / повтор имени поля в запросе
5 сообщений из 5, страница 1 из 1
повтор имени поля в запросе
    #38633309
Фотография Shakill
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
День добрый. Есть вопрос по поведению парсера
Код: sql
1.
2.
3.
4.
create table dbo.t_Test(a int)
select a, a from t_Test order by a  -- Ambiguous column name 'a'.
select a as b, a from t_Test order by a -- устраняем повторы имен, ошибка пропадает
select a, a from t_Test z order by z.a -- но почему она пропала здесь?


Microsoft SQL Server 2008 R2 (SP2) - 10.50.4302.0 (X64)
...
Рейтинг: 0 / 0
повтор имени поля в запросе
    #38633328
Glory
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
в ORDER BY можно использовать как имена полей, так и алиасы выражений

select a, a from t_Test z order by z.a -- но почему она пропала здесь? - здесь вы указали точные имя/алиас таблицы и имя поля
...
Рейтинг: 0 / 0
повтор имени поля в запросе
    #38633330
iap
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ShakillДень добрый. Есть вопрос по поведению парсера
Код: sql
1.
2.
3.
4.
create table dbo.t_Test(a int)
select a, a from t_Test order by a  -- Ambiguous column name 'a'.
select a as b, a from t_Test order by a -- устраняем повторы имен, ошибка пропадает
select a, a from t_Test z order by z.a -- но почему она пропала здесь?



Microsoft SQL Server 2008 R2 (SP2) - 10.50.4302.0 (X64)Наверно, в последнем случае он сразу видит, что поле находится в строго заданной таблице
и колонки всегда имеют одно и то же значение?
А во втором случае надо ещё сообразить, что во FROMе только одна таблица...

Интересный эффект. Вот что значит следовать правилу всегда и везде писать алиасы!
...
Рейтинг: 0 / 0
повтор имени поля в запросе
    #38633437
order by a
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
я вам еще "накину"


Код: sql
1.
select a, * from table order by a
...
Рейтинг: 0 / 0
повтор имени поля в запросе
    #38633451
Фотография Shakill
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
order by aя вам еще "накину"


Код: sql
1.
select a, * from table order by a


вообще, вопрос как раз на этом примере и возник, перед постом слегка упростил

Gloryв ORDER BY можно использовать как имена полей, так и алиасы выражений

select a, a from t_Test z order by z.a -- но почему она пропала здесь? - здесь вы указали точные имя/алиас таблицы и имя поля

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


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