Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Вопрос про использование именованных столбцов / 24 сообщений из 24, страница 1 из 1
14.12.2017, 15:30:27
    #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
14.12.2017, 15:38:27
    #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
14.12.2017, 15:45:51
    #39569699
Massa52
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос про использование именованных столбцов
ferzmikk,
Код: sql
1.
2.
SELECT
	Т1.KodTT AS КодТТ


А где запятая?
...
Рейтинг: 0 / 0
14.12.2017, 15:52:28
    #39569706
iap
iap
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос про использование именованных столбцов
Что мешает в первом запросе суммировать поля, а не алиасы?
Не вижу проблемы.
...
Рейтинг: 0 / 0
14.12.2017, 16:06:03
    #39569725
alexeyvg
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос про использование именованных столбцов
ferzmikkМожно ли написать запрос, если используются именованные столбцы, без вложенных запросов?Нет.
...
Рейтинг: 0 / 0
15.12.2017, 07:15:21
    #39570077
ferzmikk
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос про использование именованных столбцов
alexeyvgferzmikkМожно ли написать запрос, если используются именованные столбцы, без вложенных запросов?Нет.Что самое интересное, что Access-ий SQL так может.
...
Рейтинг: 0 / 0
15.12.2017, 10:09:26
    #39570143
alexeyvg
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос про использование именованных столбцов
ferzmikkalexeyvgпропущено...
Нет.Что самое интересное, что Access-ий SQL так может.Вы же задавали вопрос про MSSQL? Нужно было ответить "да, можно в Access"? :-)
...
Рейтинг: 0 / 0
17.12.2017, 07:19:32
    #39570902
iii2
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос про использование именованных столбцов
alexeyvgferzmikkМожно ли написать запрос, если используются именованные столбцы, без вложенных запросов?Нет.
СТЕ можно использовать, или view.
Хотя, оно, конечно, по смыслу всё равно вложенные запросы...
...
Рейтинг: 0 / 0
17.12.2017, 07:30:46
    #39570903
bideveloper
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос про использование именованных столбцов
Кстати, интересно, почему в MSSQL не реализуют такую возможность? Вроде, это не сложно, и упростило бы синтаксис многих запросов. Понимаю, что могут быть циклические ссылки, но на это тоже легко сделать проверки.
...
Рейтинг: 0 / 0
17.12.2017, 07:43:02
    #39570905
iii2
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос про использование именованных столбцов
bideveloperКстати, интересно, почему в MSSQL не реализуют такую возможность? Вроде, это не сложно, и упростило бы синтаксис многих запросов. Понимаю, что могут быть циклические ссылки, но на это тоже легко сделать проверки.
Ага. Добавили бы что-то типа алиаса self для обозначения текущего набора полей выборки, и вперед.
Только, боюсь , извратят идею на корню. Тут же начнут стонать, почему это не работает в lag/lead и прочих оконных (например), а понимание логики такого запроса сможет добавить массу седых волос.
Короче, иногда смотришь на какой-нибудь вычурный case, результатом вычисления которого нужно воспользоваться еще в паре полей той же записи - и хочется. А как понимаешь, что тебе потом разбирать понаписанное - и не хочется.
)))
...
Рейтинг: 0 / 0
17.12.2017, 16:38:21
    #39571020
iap
iap
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос про использование именованных столбцов
Поля из списка SELECT обрабатываются в произвольном порядке.
Ясно, что выражение в списке не может зависеть от другого выражения в этом же списке.
...
Рейтинг: 0 / 0
17.12.2017, 19:03:32
    #39571033
ptr128
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос про использование именованных столбцов
iii2,

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

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


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

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

ну пусть апнет "as Won't Fix" :)
...
Рейтинг: 0 / 0
20.12.2017, 00:33:17
    #39572386
Mind
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос про использование именованных столбцов
invmStarikNavyтем более всем желающим outer aply предоставилиouter apply для целей поименования выражений использовать не стоит - лишние накладные расходы по сравнению с cross apply.Вы правда думаете что будет разница между cross apply и outer apply в случае если в подзапросе даже таблицы то и нету?
...
Рейтинг: 0 / 0
20.12.2017, 11:27:31
    #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
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Вопрос про использование именованных столбцов / 24 сообщений из 24, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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