Гость
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / SELECT * вместе с UNION ALL / 6 сообщений из 6, страница 1 из 1
24.06.2020, 15:50
    #39972790
BowMaster
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SELECT * вместе с UNION ALL
Firebird 3.0. Есть программа, которая будет подключаться к разным базам, в них всех будет таблица скажем "MyTable", там будут разные поля и разное их количество, но мы точно знаем, что там будут некоторые поля(например "Name").

1)Задача: считать все поля из таблицы "MyTable", добавить в результат с помощью UNION ALL строки из другой таблицы, скажем "MyTable2"(поля в ней везде одинаковые если что), нужно только одно поле, остальные пусть будут null.

К примеру надо что-то вроде:
Код: sql
1.
2.
3.
SELECT * FROM "MyTable"
UNION ALL
SELECT "Field1" AS "Name"  FROM "MyTable2" 



Получаем "count of column list and variable list do not match.". Можно ли как-то сделать так что бы после UNION ALL у нас в результат выдало бы те же поля что и в 1ом запросе, соответственно в поле "Name" - содержимое "MyTable2"."Field1", остальное заполнить null?

2)И еще интересует возможно ли осуществить такое:
Код: sql
1.
2.
3.
4.
5.
SELECT *, 
CASE ...
WHEN ... THEN ...
END AS Y
FROM ...


То есть считать все поля, и добавить еще 1но создаваемое на основе другого(пример: если поле X = 0, то поле Y='ноль').

Если в обоих примерах записывать не SELECT *, а перечислить конкретные поля, то проблем нет. Что делать в ситуации, когда в таблице могут быть разные доп. поля и их надо вывести?
...
Рейтинг: 0 / 0
24.06.2020, 16:05
    #39972800
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SELECT * вместе с UNION ALL
BowMasterЧто делать в ситуации, когда в таблице могут быть разные доп. поля и их надо вывести?

Не перекладывать работу клиента по обработке и выводу информации на сервер. Запрашивать
данные разными запросами.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
24.06.2020, 16:33
    #39972808
_Vasilisk_
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SELECT * вместе с UNION ALL
BowMaster
2)И еще интересует возможно ли осуществить такое:

Код: sql
1.
2.
3.
4.
5.
6.
7.
SELECT t.*, 
CASE ...
WHEN ... THEN ...
END AS Y
FROM
  mytable t
......
...
Рейтинг: 0 / 0
24.06.2020, 22:44
    #39972938
Ivan_Pisarevsky
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SELECT * вместе с UNION ALL
BowMaster
перечислить конкретные поля, то проблем нет.
Вот так и делайте.
BowMaster
Что делать в ситуации, когда в таблице могут быть разные доп. поля и их надо вывести?
Как такое вообще возможно? правая нога не знает, что делает левая? поля в базе плодятся сами?
BowMaster
SELECT *
Аццкий АдЪ.
...
Рейтинг: 0 / 0
25.06.2020, 10:43
    #39973048
KreatorXXI
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SELECT * вместе с UNION ALL
BowMaster,

не так давно в соседней ветке обсуждается 'select *'. Костыль, который сломается сразу при первом же использовании. Может Вы не понимаете, что для UNION можно писать разные поля, никак не связанные друг с другом?
...
Рейтинг: 0 / 0
25.06.2020, 22:36
    #39973354
BowMaster
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SELECT * вместе с UNION ALL
Dimitry Sibiryakov

Запрашивать данные разными запросами.

Так и было, но была поставлена задача сделать иначе.

Ivan_Pisarevsky
BowMaster
перечислить конкретные поля, то проблем нет.
Вот так и делайте.
BowMaster
Что делать в ситуации, когда в таблице могут быть разные доп. поля и их надо вывести?
Как такое вообще возможно? правая нога не знает, что делает левая? поля в базе плодятся сами?
BowMaster
SELECT *
Аццкий АдЪ.

Если бы мне можно было сделать так, не спрашивал бы как сделать по-другому. Без обид, но ваши комментарии, на мой взгляд, самые бессмысленные.

KreatorXXI
BowMaster,
UNION можно писать разные поля, никак не связанные друг с другом

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


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