2017-02-14 7 views
0

다음은 다음과 같습니다. 두 개의 테이블은 변경할 수 없습니다.sub select를 사용하여 FROM 테이블을 선택하고 결과 테이블 이름을 수정하십시오.

1 : 데이터 형식이

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

예 데이터 :

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

2 : datalong_1 난을 만들고 싶어

(데이터 모델은 여기에 문제가되지 않습니다) 쿼리에서 이제 datatypetable 속성을 데이터 유형 테이블에 String "_1"을 추가하고 여기에서 모든 컨텐츠를 선택합니다.

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

가 어떻게이 HSQLDB를 사용하여 SQL에서 일어날 수 :

나는 분명히 아직 작동하지 않습니다이 문장과 유사한 무언가를보고, 프로그래밍 관점에서, 그것을 상상?

감사합니다. Leonidas199x 덕분에 '_1'을 얻는 방법을 알았지 만, FROM 문에 subselect가 읽을 새 테이블이 아니라 기존 테이블의 이름을 읽고 싶다고 말하면 어떻게됩니까? 에서. 이 광산 동일이 질문에 따르면

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 012511111 # 285557) –

+0

또한 SQL의 문자열 연결 연산자는'||'이 아닌'+'입니다 - HSQLDB는 비 - 표준'+'이지만 표준을 고수하는 것이 낫다. –

답변

1

당신은 내가 좀 더 구체적으로 데이터 모델을 설명 할 수 'datatypename'에 _1을 추가하려는 경우 다음을 사용할 수 있습니다.

SELECT datatypename+'_1' 
FROM datatypes 
+0

기본적으로 테이블 Prefix가 특정 데이터 형식 (Thats 테이블 Nr1)을 저장하는 정보를 보유하는 테이블이 하나 있습니다. 그런 다음 접두사로 시작하고 "_"및 식별자로 끝나는 수백 개의 테이블이 있으므로 "_1"입니다. 나는 "datalong_1"과 같은 테이블의 한 예를 들었다. 총 4 개의 접두어가 각 데이터 유형 (long, int, double, String)에 하나씩 존재합니다. 이제 Identifier 1에 대한 CycleTime 정보를 저장하는 테이블을 알고 싶다면 데이터 형식 테이블에서 접두사를 추출하고 "_1"접미사를 추가해야합니다. – Markus