Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Informix [игнор отключен] [закрыт для гостей] / Select From Select / 13 сообщений из 13, страница 1 из 1
13.03.2009, 15:33
    #35867857
MaxiStyle
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Select From Select
Народ, только начал работу с Informix.
Для соединения с базой использую ODBC.

Подскажите пожалуйста по каким причинам БД ругается на синтаксис в запросе:
Код: plaintext
SELECT * FROM (SELECT * FROM mytab)
Хотя в документаци говорится, что ошибки не должно быть.

И еще, есть ли в этой БД альтернатива таблице dual (как в Oracle и MySQL):
Код: plaintext
SELECT TODAY FROM dual
Для того чтоб, получить значение из функции TODAY или CURRENT
...
Рейтинг: 0 / 0
13.03.2009, 15:38
    #35867873
АнатоЛой
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Select From Select
MaxiStyleНарод, только начал работу с Informix.
Какой версии, на какой платформе.

MaxiStyle
Подскажите пожалуйста по каким причинам БД ругается на синтаксис в запросе:
Код: plaintext
SELECT * FROM (SELECT * FROM mytab)

Как именно ругается?

MaxiStyle
Хотя в документаци говорится, что ошибки не должно быть.

В какой документации? (В частности к какой версии :))

MaxiStyle
И еще, есть ли в этой БД альтернатива таблице dual (как в Oracle и MySQL):
Код: plaintext
SELECT TODAY FROM dual
Для того чтоб, получить значение из функции TODAY или CURRENT
Получить куда? :)
Если всё же - клиенту в программу:
Вариант 1: создай таблицу сам
Вариант 2: создай свои ХП, в которых будет а-ля RETURN TODAY, и используй EXECUTE PROCEDURE
...
Рейтинг: 0 / 0
13.03.2009, 15:48
    #35867902
vasilis
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Select From Select
АнатоЛой
MaxiStyle
И еще, есть ли в этой БД альтернатива таблице dual (как в Oracle и MySQL):
Код: plaintext
SELECT TODAY FROM dual
Для того чтоб, получить значение из функции TODAY или CURRENT

Вариант 1: создай таблицу сам
Вариант 2: создай свои ХП, в которых будет а-ля RETURN TODAY, и используй EXECUTE PROCEDUREВариант 3: SELECT TODAY FROM systables where tabid=1;
Это для всех версий IDS
...
Рейтинг: 0 / 0
13.03.2009, 15:49
    #35867903
Le111
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Select From Select
Код: plaintext
Select today from table(set{ 1 })
...
Рейтинг: 0 / 0
13.03.2009, 15:51
    #35867910
vasilis
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Select From Select
Le111
Код: plaintext
Select today from table(set{ 1 })

Это только для версий старше 9.30 (если я правильно помню)
...
Рейтинг: 0 / 0
14.03.2009, 14:16
    #35869209
MaxiStyle
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Select From Select
Спасибо за ответы!

MaxiStyle
Подскажите пожалуйста по каким причинам БД ругается на синтаксис в запросе:
Код: plaintext
SELECT * FROM (SELECT * FROM mytab)
Хотя в документаци говорится, что ошибки не должно быть.


Версия сервера, если не ошибся, 7.
...
Рейтинг: 0 / 0
16.03.2009, 12:34
    #35871193
vasilis
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Select From Select
Точную версию сервера можно увидеть в любом выводе утилиты onstat (только на сервере).
И документацию нужно читать именно под свою версию.
Где найти док-ю - см. ФАК http://www.sql.ru/faq/faq_topic.aspx?fid=981
...
Рейтинг: 0 / 0
16.03.2009, 14:34
    #35871647
MaxiStyle
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Select From Select
vasilis, нашел в таблице systables. Версия 9.4 оказалось.
...
Рейтинг: 0 / 0
16.03.2009, 15:51
    #35871904
Celamoi
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Select From Select
Насколько мне известно для вложенных во FROM "селектов" в Informix используется конструкция table(multiset(...))
Например обсуждаемый запрос выглядит (и работает - проверял :) так -
SELECT * FROM table(multiset(SELECT * FROM currency))
...
Рейтинг: 0 / 0
16.03.2009, 15:54
    #35871911
Celamoi
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Select From Select
CelamoiНасколько мне известно для вложенных во FROM "селектов" в Informix используется конструкция table(multiset(...))
Например обсуждаемый запрос выглядит (и работает - проверял :) так -
SELECT * FROM table(multiset(SELECT * FROM currency))
взял из своей базы - "currency" это таблица такая у меня
...
Рейтинг: 0 / 0
16.03.2009, 16:03
    #35871941
victor16
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Select From Select
Код: plaintext
select * from (select * from tabname)

в 11 версии вполне легальная конструкция, проверено
...
Рейтинг: 0 / 0
16.03.2009, 16:20
    #35871990
Celamoi
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Select From Select
victor16
Код: plaintext
select * from (select * from tabname)

в 11 версии вполне легальная конструкция, проверено

жаль, что у меня 10-я, честное слово, а то кострукции типа table(multiset(...)) слегка непривычны и кажутся неудобными
...
Рейтинг: 0 / 0
16.03.2009, 21:33
    #35872727
vasilis
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Select From Select
MaxiStylevasilis, нашел в таблице systables. Версия 9.4 оказалось.
На всякий случай уточню, что в таблице systables могут быть и неверные данные :)
Такие случаи были. так что доверять им не стоит.
В SQL лучше использовать функцию DBINFO('version','full').
Можно еще увидеть в корневой странице при выводе oncheck -pr
...
Рейтинг: 0 / 0
Форумы / Informix [игнор отключен] [закрыт для гостей] / Select From Select / 13 сообщений из 13, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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