2016-10-26 7 views
-2

У меня есть временная таблица.Изменение имени столбца при выборе

col_1 col_2 col_3 col_4 
ABC  B01  10  5 
ABC  B01  77  5 
ABC  B03  30  7 
ABC  B05  50  11 
ABC  B05  88  11 
DEF  B05  50  50 
DEF  B05  88  50 
DEF  B06  66  50 
A01  B02  20  0 
A01  B04  40  0 
A02  B02  99  0 

и этот помощник стол:

ID1  ID2 
ABC  A01 
DEF  A02 

То, что я хотел бы сделать. Если во временной таблице есть значения в col_1, которые соответствуют ID2 в таблице помощников, значения меняются на ID1 в вспомогательной таблице. Как это сделать на select?

Итак, когда я делаю выбор (SELECT * FROM temporary). Это является результатом:

col_1 col_2 col_3 col_4 
ABC  B01  10  5 
ABC  B01  77  5 
ABC  B03  30  7 
ABC  B05  50  11 
ABC  B05  88  11 
DEF  B05  50  50 
DEF  B05  88  50 
DEF  B06  66  50 
ABC  B02  20  0 
ABC  B04  40  0 
DEF  B02  99  0 

Возможно ли это? Спасибо за вашу помощь

нб:

Есть много значений в таблице хелперов. Не только две строки.

ответ

0

Выравнивание по левому краю с футляром

select case 
       when h.id2 = tt.col_1 then h.id1 
       else tt.col_1 
      end as col_1, 
      col_2,col_3,col_4 
from temporary_table tt 
left join helper h on tt.col_1 = h.id2 
+0

есть не только два значения в хелперов таблице. С реальными данными имеется около 500 значений. – Vahn

+0

, но только 2 столбца вправо? –

+0

Спасибо, П.Салмон. Я внедрил его в свои настоящие данные, и он работает как шарм: D – Vahn

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