2016-09-22 53 views
0

我有两个表具有以下数据移调列于行 - Teradata的

TABLEA 
TYPES COLUMNA COLUMNB COLUMNC 
DART 8.00  9.00 10.00 

TABLEB 
TYPES DESCP ACNT 
DART COLUMNA 14000 
DART COLUMNB 15000 
DART COLUMNC 16000 

我的预期输出是

TYPES AMT ACNT 
DART 8.00 14000 
DART 9.00 15000 
DART 10.00 16000 

我写了下面的代码来获取输出

SELECT X.TYPES, 
CASE WHEN DESCP='COLUMNA' THEN COLUMNA 
WHEN DESCP='COLUMNB' THEN COLUMNB 
WHEN DESCP='COLUMNC' THEN COLUMNC ELSE NULL END AMT, 
B.ACNT 
FROM 
TABLEA X 
JOIN 
TABLEB Y 
ON X.TYPES=Y.TYPES 

这些只是示例数据,大约有10种类型和10多列。除了写入case语句以包含所有列以实现此目的外,是否还有其他选择?谢谢

+1

'case'语句可能是最好的方法。 –

+0

个案表达,不是陈述... – jarlh

回答