2014-11-07 2 views
-4

У меня есть таблица под названием ABC и XYZнужны SQL-запрос для этого требования

Таблица ABC: У меня есть пять столбцов, как col_1, col_2, col_3, col_4, col_5

Col_1 col_2 col_3 col_4 col_5 
10  20  30  40  50 

Таблица XYZ: У меня есть один столбец, как cOL_NAME

Col_Name 
col_1 
col_2 
col_5 

Мне нужен выход, как:

Таблица Результат:

col_1 10 
col_2 20 
col_5 50 
+1

Это действительно сложно сделать из-за этого плохого дизайна стола. Подумайте об этом. –

+0

Какие СУБД вы используете? –

+0

@ramesh: "oracle 10g" –

ответ

0

Вы можете сделать это с сазом:

SELECT 
    Col_name, 
    CASE WHEN Col_Name = 'col_1' THEN TableABC.col_1 
      WHEN Col_Name = 'col_2' THEN TableABC.col_2 
      WHEN Col_Name = 'col_3' THEN TableABC.col_3 
      WHEN Col_Name = 'col_4' THEN TableABC.col_4 
      WHEN Col_Name = 'col_5' THEN TableABC.col_5 
    END AS Result 
FROM TableXYZ, TableABC 

Там не динамичный способ в большинстве систем баз данных, чтобы выбрать столбцы.

+0

@ramesh: «ABC - это столбец таблицы конфигурации, который может увеличиться, должен быть динамическим» –

+0

@ramesh: «Мне нужно только col_1, col_2, col_5, потому что у меня есть только эти столбцы в таблице XYZ" –

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