powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Вопрос про использование именованных столбцов
24 сообщений из 24, страница 1 из 1
Вопрос про использование именованных столбцов
    #39569679
ferzmikk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Здравствуйте!

Пишу такой SQL-запрос
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
SELECT
	Т1.KodTT AS КодТТ
	Т1.Monday AS пн,
	Т1.Tuesday AS вт,
	Т1.Wednesday AS ср,
	Т1.Thursday AS чт,
	Т1.Friday AS пт,
	Т1.Saturday AS сб,
	Т1.Sunday AS вс,
	пн + вт + ср + чт + пт + сб + вс AS КоличествоПоставок
FROM	
	Т1

И он не работает. Пишет, что недопустимые имена столбцов: пн, вт, ср, чт, пт, сб и вс.

Если запрос написать с вложением
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
SELECT
	*,
	Т2.пн + Т2.вт + Т2.ср + T2.чт + Т2.пт + Т2.сб + Т2.вс AS КоличествоПоставок
FROM(
	SELECT
		Т1.KodTT AS КодТТ
		Т1.Monday AS пн,
		Т1.Tuesday AS вт,
		Т1.Wednesday AS ср,
		Т1.Thursday AS чт,
		Т1.Friday AS пт,
		Т1.Saturday AS сб,
		Т1.Sunday AS вс	
	FROM	
		Т1) AS Т2

, то работает

Можно ли написать запрос, если используются именованные столбцы, без вложенных запросов? Может быть какой то символ надо в названии именованных столбцов добавить?
...
Рейтинг: 0 / 0
Вопрос про использование именованных столбцов
    #39569693
Кусочек
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
SELECT
	Т1.KodTT AS КодТТ
	Т1.Monday AS пн,
	Т1.Tuesday AS вт,
	Т1.Wednesday AS ср,
	Т1.Thursday AS чт,
	Т1.Friday AS пт,
	Т1.Saturday AS сб,
	Т1.Sunday AS вс,
	Т1.KodTT + Т1.Monday + 	Т1.Tuesday + 	Т1.Wednesday + Т1.Thursday + Т1.Friday + Т1.Saturday + Т1.Sunday AS КоличествоПоставок
FROM	
	Т1



Прочитайте еще раз в справке про синонимы.
...
Рейтинг: 0 / 0
Вопрос про использование именованных столбцов
    #39569699
Massa52
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ferzmikk,
Код: sql
1.
2.
SELECT
	Т1.KodTT AS КодТТ


А где запятая?
...
Рейтинг: 0 / 0
Вопрос про использование именованных столбцов
    #39569706
iap
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Что мешает в первом запросе суммировать поля, а не алиасы?
Не вижу проблемы.
...
Рейтинг: 0 / 0
Вопрос про использование именованных столбцов
    #39569725
Фотография alexeyvg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ferzmikkМожно ли написать запрос, если используются именованные столбцы, без вложенных запросов?Нет.
...
Рейтинг: 0 / 0
Вопрос про использование именованных столбцов
    #39570077
ferzmikk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alexeyvgferzmikkМожно ли написать запрос, если используются именованные столбцы, без вложенных запросов?Нет.Что самое интересное, что Access-ий SQL так может.
...
Рейтинг: 0 / 0
Вопрос про использование именованных столбцов
    #39570143
Фотография alexeyvg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ferzmikkalexeyvgпропущено...
Нет.Что самое интересное, что Access-ий SQL так может.Вы же задавали вопрос про MSSQL? Нужно было ответить "да, можно в Access"? :-)
...
Рейтинг: 0 / 0
Вопрос про использование именованных столбцов
    #39570902
iii2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
alexeyvgferzmikkМожно ли написать запрос, если используются именованные столбцы, без вложенных запросов?Нет.
СТЕ можно использовать, или view.
Хотя, оно, конечно, по смыслу всё равно вложенные запросы...
...
Рейтинг: 0 / 0
Вопрос про использование именованных столбцов
    #39570903
bideveloper
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кстати, интересно, почему в MSSQL не реализуют такую возможность? Вроде, это не сложно, и упростило бы синтаксис многих запросов. Понимаю, что могут быть циклические ссылки, но на это тоже легко сделать проверки.
...
Рейтинг: 0 / 0
Вопрос про использование именованных столбцов
    #39570905
iii2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
bideveloperКстати, интересно, почему в MSSQL не реализуют такую возможность? Вроде, это не сложно, и упростило бы синтаксис многих запросов. Понимаю, что могут быть циклические ссылки, но на это тоже легко сделать проверки.
Ага. Добавили бы что-то типа алиаса self для обозначения текущего набора полей выборки, и вперед.
Только, боюсь , извратят идею на корню. Тут же начнут стонать, почему это не работает в lag/lead и прочих оконных (например), а понимание логики такого запроса сможет добавить массу седых волос.
Короче, иногда смотришь на какой-нибудь вычурный case, результатом вычисления которого нужно воспользоваться еще в паре полей той же записи - и хочется. А как понимаешь, что тебе потом разбирать понаписанное - и не хочется.
)))
...
Рейтинг: 0 / 0
Вопрос про использование именованных столбцов
    #39571020
iap
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Поля из списка SELECT обрабатываются в произвольном порядке.
Ясно, что выражение в списке не может зависеть от другого выражения в этом же списке.
...
Рейтинг: 0 / 0
Вопрос про использование именованных столбцов
    #39571033
Фотография ptr128
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iii2,

И поэтому, я, почти всегда, свой код на SQL прогоняю через C препроцессор )
...
Рейтинг: 0 / 0
Вопрос про использование именованных столбцов
    #39571039
Фотография alexeyvg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
bideveloperКстати, интересно, почему в MSSQL не реализуют такую возможность? Вроде, это не сложно, и упростило бы синтаксис многих запросов. Понимаю, что могут быть циклические ссылки, но на это тоже легко сделать проверки.Я понимаю осторожность сиквельной команды, достаточно посмотреть, во что превратился лаконичный и простой C++ :-)
Хотя, наверное, можно было бы, только разрешать определение алиаса только один раз, и не разрешать дубликаты
И код перестанет быть совместим с сиквелом, потому что сейчас можно их делать, поэтому должна быть какая то опция.
А опция может быть на уровне коннекта, но только на уровне коннекта нельзя, потому что есть сохранённый код.
А на уровне сервера нельзя, потому что можно приатачить базу, в которой процедуры написаны по старому.
Тьфу, в общем, не надо :-)
...
Рейтинг: 0 / 0
Вопрос про использование именованных столбцов
    #39571248
Фотография StarikNavy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alexeyvg,

да, не надо. тем более всем желающим outer aply предоставили
...
Рейтинг: 0 / 0
Вопрос про использование именованных столбцов
    #39571377
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
bideveloperпочему в MSSQL не реализуют такую возможность? Вроде, это не сложно
Потому что реализация такой абы фичи приведёт к появлению неоднозначностей.
Код: sql
1.
2.
SELECT (field+1) as field, field+1 as field2
FROM table


И всё, приплыли...
...
Рейтинг: 0 / 0
Вопрос про использование именованных столбцов
    #39571395
invm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
StarikNavyтем более всем желающим outer aply предоставилиouter apply для целей поименования выражений использовать не стоит - лишние накладные расходы по сравнению с cross apply.
...
Рейтинг: 0 / 0
Вопрос про использование именованных столбцов
    #39571531
bideveloper
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Akina,
На неоднозначности уже есть проверка, например, если выбираем поле, которое называется одинаково в таблицах, по которым идет джойн в запросе. Ее можно расширить с помощью алиаса, как предлагал iii2

iii2Добавили бы что-то типа алиаса self для обозначения текущего набора полей выборки, и вперед.
...
Рейтинг: 0 / 0
Вопрос про использование именованных столбцов
    #39571532
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
bideveloperНа неоднозначности уже есть проверкаНу и каков будет итог этой проверки? Ambiquous reference? невелика радость...
...
Рейтинг: 0 / 0
Вопрос про использование именованных столбцов
    #39571535
TaPaK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
к чемуу обсуждать обсурдные идеи? хочет - вперед на connect излагать гениальную мысль
...
Рейтинг: 0 / 0
Вопрос про использование именованных столбцов
    #39571536
TaPaK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
даже идеи *абсурдные :)
...
Рейтинг: 0 / 0
Вопрос про использование именованных столбцов
    #39571541
bideveloper
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TaPaKк чемуу обсуждать обсурдные идеи? хочет - вперед на connect излагать гениальную мысль
уже было )
https://connect.microsoft.com/SQLServer/feedback/details/610120/column-alias-usage-everywhere-in-a-query
...
Рейтинг: 0 / 0
Вопрос про использование именованных столбцов
    #39571545
TaPaK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
bideveloper,

ну пусть апнет "as Won't Fix" :)
...
Рейтинг: 0 / 0
Вопрос про использование именованных столбцов
    #39572386
Фотография Mind
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
invmStarikNavyтем более всем желающим outer aply предоставилиouter apply для целей поименования выражений использовать не стоит - лишние накладные расходы по сравнению с cross apply.Вы правда думаете что будет разница между cross apply и outer apply в случае если в подзапросе даже таблицы то и нету?
...
Рейтинг: 0 / 0
Вопрос про использование именованных столбцов
    #39572588
invm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MindВы правда думаете что будет разница между cross apply и outer apply в случае если в подзапросе даже таблицы то и нету?Будет.
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
set statistics profile on;
go

select top (1)
 a.number, b.number
from
 master.dbo.spt_values a cross apply
 (select a.number * 10) b(number);
/*
select top (1)   a.number, b.number  from   master.dbo.spt_values a cross apply   (select a.number * 10) b(number)
  |--Top(TOP EXPRESSION:((1)))
       |--Compute Scalar(DEFINE:([Expr1004]=[mssqlsystemresource].[sys].[spt_values].[number]*(10)))
            |--Index Scan(OBJECT:([mssqlsystemresource].[sys].[spt_values].[ix2_spt_values_nu_nc]))
*/

select top (1)
 a.number, b.number
from
 master.dbo.spt_values a outer apply
 (select a.number * 10) b(number);
/*
select top (1)   a.number, b.number  from   master.dbo.spt_values a outer apply   (select a.number * 10) b(number)
  |--Top(TOP EXPRESSION:((1)))
       |--Nested Loops(Left Outer Join, OUTER REFERENCES:([mssqlsystemresource].[sys].[spt_values].[number]))
            |--Index Scan(OBJECT:([mssqlsystemresource].[sys].[spt_values].[ix2_spt_values_nu_nc]))
            |--Constant Scan(VALUES:(([mssqlsystemresource].[sys].[spt_values].[number]*(10))))
*/
go

set statistics profile off
go
...
Рейтинг: 0 / 0
24 сообщений из 24, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Вопрос про использование именованных столбцов
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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