Гость
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Как одним запросом получить все буквы алфавита ? / 25 сообщений из 25, страница 1 из 1
05.08.2012, 17:54
    #37904894
Cyrax
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как одним запросом получить все буквы алфавита ?
Как одним запросом получить все буквы алфавита ? Без создания временных таблиц.
Понятно, что запросу не нужны будут никакие таблицы. И без функций, похоже, тоже не обойтись.
...
Рейтинг: 0 / 0
05.08.2012, 18:22
    #37904911
ILL HEAD
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как одним запросом получить все буквы алфавита ?
авторПонятно, что запросу не нужны будут никакие таблицы.запрос без таблицы? новое слово в sql?
...
Рейтинг: 0 / 0
05.08.2012, 18:28
    #37904915
ksv55
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как одним запросом получить все буквы алфавита ?
Cyrax,
Код: plsql
1.
2.
3.
SELECT
  CHR(ROWNUM+ASCII('А')-1)ch
FROM dual t CONNECT BY ROWNUM <=32
...
Рейтинг: 0 / 0
05.08.2012, 18:29
    #37904916
guest_rusimport
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как одним запросом получить все буквы алфавита ?
Cyrax,

Код: sql
1.
2.
SELECT TOP 1 "абвгдеёжзийклмнопрстуфхцчшщъыьэюя" AS Алфавит
FROM msysobjects;


это чтоль?
...
Рейтинг: 0 / 0
05.08.2012, 18:31
    #37904917
ksv55
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как одним запросом получить все буквы алфавита ?
Cyrax,
извиняюсь, не в тот форум попал - рецепт для Oracle
...
Рейтинг: 0 / 0
05.08.2012, 18:34
    #37904918
qwerty112
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как одним запросом получить все буквы алфавита ?
guest_rusimportCyrax,

Код: sql
1.
2.
SELECT TOP 1 "абвгдеёжзийклмнопрстуфхцчшщъыьэюя" AS Алфавит
FROM msysobjects;


это чтоль?
нуу, тогда уже так,
что б, "савсем-савсем" по ТЗ было :))

Код: sql
1.
SELECT TOP 1 "абвгдеёжзийклмнопрстуфхцчшщъыьэюя" AS Алфавит



но, он же щас "в столбик", попросит ...
...
Рейтинг: 0 / 0
05.08.2012, 18:41
    #37904923
guest_rusimport
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как одним запросом получить все буквы алфавита ?
qwerty112,

ну тады и TOP 1 не нужен , а в столбик пусть сам решает ... не маленький )))))
...
Рейтинг: 0 / 0
05.08.2012, 19:25
    #37904939
Изопропил
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как одним запросом получить все буквы алфавита ?
SELECT "A" AS letter
UNION
SELECT "B" AS letter
....
SELECT "Z" AS letter
...
Рейтинг: 0 / 0
05.08.2012, 19:54
    #37904944
Cyrax
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как одним запросом получить все буквы алфавита ?
авторно, он же щас "в столбик", попросит ...
А столбиком - это как ? Матрица ш_оль ?

авторSELECT "A" AS letter
UNION
SELECT "B" AS letter
....
SELECT "Z" AS letter
Работать не будет. Нужна хотя бы одна таблица.
Например, так:
Код: plsql
1.
2.
3.
4.
SELECT "A" AS letter FROM msysobjects
SELECT "B" AS letter FROM msysobjects
....
SELECT "Z" AS letter FROM msysobjects



В любом случае необходимо более лаконичное решение.
...
Рейтинг: 0 / 0
05.08.2012, 20:14
    #37904952
Norvеg_
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как одним запросом получить все буквы алфавита ?
Cyraxавторно, он же щас "в столбик", попросит ...
А столбиком - это как ? Матрица ш_оль ?

авторSELECT "A" AS letter
UNION
SELECT "B" AS letter
....
SELECT "Z" AS letter
Работать не будет. Нужна хотя бы одна таблица.
Например, так:
Код: plsql
1.
2.
3.
4.
SELECT "A" AS letter FROM msysobjects
SELECT "B" AS letter FROM msysobjects
....
SELECT "Z" AS letter FROM msysobjects



В любом случае необходимо более лаконичное решение.

Циклом по коду символа
...
Рейтинг: 0 / 0
05.08.2012, 20:18
    #37904955
йййй
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как одним запросом получить все буквы алфавита ?
Код: sql
1.
2.
3.
4.
5.
select top 32 chr(count(t2.id)+224) as letter
from msysobjects as t1 
  left join msysobjects as t2 on t2.id<t1.id
group by t1.id
order by t1.id
...
Рейтинг: 0 / 0
05.08.2012, 20:58
    #37904975
guest_rusimport
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как одним запросом получить все буквы алфавита ?
йййй,

браво, а щас предвижу следующий вопрос - "А у меня в msysobjects всего 23 (22, 21) записей и , соответственно выдает не все буквы алфавита"
...
Рейтинг: 0 / 0
05.08.2012, 22:31
    #37905000
Cyrax
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как одним запросом получить все буквы алфавита ?
автор
Код: plsql
1.
2.
3.
4.
5.
select top 32 chr(count(t2.id)+224) as letter
from msysobjects as t1 
  left join msysobjects as t2 on t2.id<t1.id
group by t1.id
order by t1.id


Решение на твёрдую четвёрочку.
Корректность выполнения задачи зависит от:
а) числа записей в таблице msysobjects
б) наличия в таблице уникального поля "id"

автора щас предвижу следующий вопрос - "А у меня в msysobjects всего 23 (22, 21) записей и , соответственно выдает не все буквы алфавита"
Записей там предостаточно. В нулёвой базе - 21 (если правильно посчитал).
А вообще, можно и подстраховаться:
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
(select top 16 chr(count(t2.id)+224) as letter
from msysobjects as t1 
  left join msysobjects as t2 on t2.id<t1.id
group by t1.id
order by t1.id)
UNION
(select top 16 chr(count(t2.id)+224+16) as letter
from msysobjects as t1 
  left join msysobjects as t2 on t2.id<t1.id
group by t1.id
order by t1.id)
...
Рейтинг: 0 / 0
05.08.2012, 22:56
    #37905006
guest_rusimport
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как одним запросом получить все буквы алфавита ?
Cyrax,

авторРешение на твёрдую четвёрочку.


А теперь опубликовал бы и на "пятерочку"))))) а заодно объяснил бы за каким весь этот "огород"?
...
Рейтинг: 0 / 0
06.08.2012, 00:21
    #37905042
йййй
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как одним запросом получить все буквы алфавита ?
Cyraxспасибопожалуйста
CyraxКорректность выполнения задачи зависит от:
а) числа записей в таблице msysobjectsЕсли у вас в базе больше одной-двух форм, то там наберется нужное число записей.
Cyraxа) числа записей в таблице msysobjects
б) наличия в таблице уникального поля "id"Вы бы посмотрели на эту таблицу что ли.
...
Рейтинг: 0 / 0
06.08.2012, 00:34
    #37905050
?????
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как одним запросом получить все буквы алфавита ?
Код: sql
1.
2.
3.
4.
5.
6.
select chr(n) as Letter from 
     (select (d2.digit & d1.digit & d0.digit)+1 AS n
      from digits AS d0, digits AS d1, digits AS d2)
where n between 192 and 223
union
select  chr(168) from digits order by 1;
...
Рейтинг: 0 / 0
06.08.2012, 06:22
    #37905108
ChaosMP
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как одним запросом получить все буквы алфавита ?
ksv55Cyrax,
извиняюсь, не в тот форум попал - рецепт для Oracle

Решение для Oracle:
Код: plsql
1.
select chr(ascii('А')+(level-1)) from dual connect by level<=32
...
Рейтинг: 0 / 0
06.08.2012, 07:27
    #37905127
alvk
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как одним запросом получить все буквы алфавита ?
ChaosMP,

первый хоть извинился ...
...
Рейтинг: 0 / 0
06.08.2012, 08:15
    #37905142
Cyrax
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как одним запросом получить все буквы алфавита ?
авторЕсли у вас в базе больше одной-двух форм, то там на1берется нужное число записей.
В общем случае возможно и такое, что не наберётся. Скажем, в какой-либо версии Access.

авторВы бы посмотрели на эту таблицу что ли.
Ну, от количества просмотров таблицы зависимость корректности результата выполнения запроса от наличия в таблице msysobjects уникального поля "id" не исчезнет. Иными словами, Ваш вариант зависит от ряда частностей и привязан к конкретной СУБД. А необходим более универсальный вариант.

?????
Код: sql
1.
2.
3.
4.
5.
6.
select chr(n) as Letter from 
     (select (d2.digit & d1.digit & d0.digit)+1 AS n
      from digits AS d0, digits AS d1, digits AS d2)
where n between 192 and 223
union
select  chr(168) from digits order by 1;


А таблицу digits где брать ?
В БД её нет и не должно быть.
...
Рейтинг: 0 / 0
06.08.2012, 08:20
    #37905147
Как одним запросом получить все буквы алфавита ?
Cyrax,

это запрос (автор BoNim)... Поиск по Форуму не работает? Или совсем расслабился и обленился???? :_)))) Накажу... )))
...
Рейтинг: 0 / 0
06.08.2012, 08:52
    #37905153
Cyrax
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как одним запросом получить все буквы алфавита ?
авторПоиск по Форуму не работает?
Модуль Телепатии не работает.

авторэто запрос (автор BoNim)
http://www.sql.ru/forum/actualutils.aspx?action=gotomsg&tid=535505&msg=5414410

Код: plsql
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.
SELECT TOP 1 0 AS digit FROM msysobjects
UNION All
SELECT TOP 1 1 FROM msysobjects
UNION All 
SELECT TOP 1 2 FROM msysobjects
UNION All
SELECT TOP 1 3 FROM msysobjects
UNION All
SELECT TOP 1 4 FROM msysobjects
UNION All
SELECT TOP 1 5 FROM msysobjects
UNION All
SELECT TOP 1 6 FROM msysobjects
UNION All
SELECT TOP 1 7 FROM msysobjects
UNION All
SELECT TOP 1 8 FROM msysobjects
UNION ALL 
SELECT TOP 1 9 FROM msysobjects

select chr(n) as Letter from 
     (select (d2.digit & d1.digit & d0.digit)+1 AS n
      from digits AS d0, digits AS d1, digits AS d2)
where n between 192 and 223
union
select  chr(168) from digits order by 1



По универсальности на 5 баллов тянет.
Но по громоздкости не уступает варианту
Код: plsql
1.
2.
3.
4.
SELECT "A" AS letter FROM msysobjects
SELECT "B" AS letter FROM msysobjects
....
SELECT "Z" AS letter FROM msysobjects
...
Рейтинг: 0 / 0
06.08.2012, 09:15
    #37905166
alvk
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как одним запросом получить все буквы алфавита ?
Cyrax,

хм, 9 юнион и 26 + n всё-таки разные вещи, к тому же digits вам ещё пригодится (интуитивно).
...
Рейтинг: 0 / 0
06.08.2012, 09:19
    #37905172
Телепят
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как одним запросом получить все буквы алфавита ?
Cyrax,

запрос то - СОХРАНЕННЫЙ! Дурилка картонная :)
Включай уже "телепятию" :)

А код на 5+ по всем твоим глубоким критериям - тебе написали ещё в самом начале чата
...
Рейтинг: 0 / 0
06.08.2012, 09:29
    #37905181
йййй
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как одним запросом получить все буквы алфавита ?
CyraxавторВы бы посмотрели на эту таблицу что ли.
Ну, от количества просмотров таблицы зависимость корректности результата выполнения запроса от наличия в таблице msysobjects уникального поля "id" не исчезнет. Иными словами, Ваш вариант зависит от ряда частностей и привязан к конкретной СУБД. А необходим более универсальный вариант.Да, но в таблице msysobjects уникальное поля "id" есть. Причем всегда есть. Иными словами, вариант не привязан к конкретной субд (если мы говорим об акцессе. Варианты для оракла 2 раза предлагались )
...
Рейтинг: 0 / 0
06.08.2012, 10:00
    #37905213
alvk
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как одним запросом получить все буквы алфавита ?
ййййВарианты для оракла 2 раза предлагались

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


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