SQL: Выбрать * не поддерживается - получить имена столбцов из подзапроса - PullRequest
0 голосов
/ 09 января 2020

Showcase является поставщиком для платформы, которую я использую, и включает сервер Showcase, расположенный на нашей промежуточной базе данных DB2 DB, для снижения влияния на производительность самого DB2. Showcase Query - это их клиентское приложение и интерфейс запросов. Он не поддерживает Select *, и у меня есть сотни тестов, основанных на *. Вместо этого вы хотите использовать подзапрос:

Select (select COLUMN_NAME from sysibm.columns where TABLE_NAME='sometable')
From 'sometable'

Это, однако, возвращает "Result of SELECT more than one row". Мне нужно повторно использовать этот код для таблиц различной ширины, поэтому я не хочу указывать столбцы по их индексам, любая помощь приветствуется.

1 Ответ

0 голосов
/ 09 января 2020

При выборе необходимо указать имя столбца или * для всех (в каждой БД AFAIK).

Это приведет к ошибке более одной строки, вероятно, для всех, кроме самых простых таблиц. потому что в sometable более одного столбца.

select COLUMN_NAME from sysibm.columns where TABLE_NAME='sometable'

Чтобы исправить это, вы должны добавить больше критериев к предложению where

    select (
        select COLUMN_NAME from sysibm.columns where TABLE_NAME='sometable' and column_name = 'PARTS'
) 
from sometable.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...