2017-02-14 2 views
0

У меня есть следующее: две таблицы, которые нельзя изменить.ВЫБЕРИТЕ таблицу FROM с дополнительным выбором и измените результирующее имя таблицы

1: Datatypes

+----------------------+-----------------------+ 
| datatypename(String) | datatypetable(String) | 
+----------------------+-----------------------+ 

Пример данных:

+-----------+------------+ 
| CycleTime | datalong | 
+-----------+------------+ 
| InjTime1 | datadouble | 
+-----------+------------+ 

2: datalong_1 (модель данных здесь не имеет значения)

Я хочу сделать запрос, который считывает атрибут datatypetable из datatypes table, добавляет String "_1" и выбирает из него весь контент.

Я представил себе это, с точки зрения программной перспективы, чтобы посмотреть что-то похожее на это заявление, которое, очевидно, еще не работает:

SELECT * FROM 
    (SELECT datatypetable FROM datatypes WHERE datatypename = 'CycleTime') + '_1' 

Как я могу сделать это происходит в SQL с помощью HSQLDB?

Благодаря Leonidas199x теперь я знаю, как получить в '_1' в но как я могу сказать FROM о том, что подзапрос не новая таблица Я хочу читать, но вместо того, чтобы имя существующей таблицы я хочу прочитать из.

SELECT * FROM 
    (SELECT RTRIM(datatypetable)+'_1' FROM datatypes WHERE datatypename = 'CycleTime') 

По этому вопросу, который идентичен моему это не представляется возможным:

using subquery instead of the tablename

:(

+0

Пожалуйста, ** [РЕДАКТИРОВАТЬ] ** ваш вопрос и ожидаемый результат на основе ваших данных образца. [** Отформатированный текст **] (http://stackoverflow.com/help/formatting), пожалуйста, [скриншоты] (http://meta.stackoverflow.com/questions/285551/why-may-i-not -upload-images-of-code-on-so-when-ask-a-question/285557 # 285557) –

+0

Также: оператор конкатенации строк в SQL является '||' not '+' - HSQLDB позволяет использовать не- стандартный '+', но лучше придерживаться стандарта. –

ответ

1

Можете ли вы объяснить вашу модель данных в немного более подробно я? не уверен, что я точно понимаю, что вы ищете. Если вы хотите добавить _1 в 'datatypename', вы можете использовать:

SELECT datatypename+'_1' 
FROM datatypes 
+0

В основном существует одна таблица, в которой содержится информация о том, какая таблица-префикс хранит определенный тип данных (таблица Thats Nr1). Тогда есть возможные сотни таблиц, которые начинаются с префикса и заканчиваются символом «_» и идентификатором, поэтому «_1». Я привел один пример такой таблицы, называемой «datalong_1». Всего существует 4 префикса, по одному для каждого типа данных (long, int, double, String). Теперь, если я хочу знать, какая таблица хранит информацию для CycleTime для идентификатора 1, мне нужно извлечь префикс из datatypetable и добавить к нему суффикс «_1», – Markus

Смежные вопросы