テーブルとカラムの名前を知らずに、テーブルとカラムの名前を取得してから、与えられたテーブルをクエリします。テーブルのデータに基づくクエリテーブルとカラム
Item
テーブル:
Item_id, Item_type,
=================
1 box
2 book
3 box
Book
テーブル:
Item_id, title, author
===========================
2 'C# Programer', 'Joe'
Box
テーブル:
Item_id, Size
=====================
1, 'Large'
3, 'X Large'
私は次のようであるOracleデータベーススキーマを持っています
Column_mapping
テーブル
Item_type, column_name, display_order
=====================================
box, Size, 1
book, title, 1
book, author 2
Table_mapping
表:私は次のような結果のようなもの与えるSQL文たい
Item_type, Table_name
========================
box, Box
book, Book
:
Item_id, Item_type column1 column2
====================================
1, box, 'Large', <null>
2, book, 'C# Programer', 'Joe'
3, box, 'X Large', <null>
私は簡略化されたクエリを試してみました
select *
from
(select Table_name
from Table_mapping
where Item_type = 'box')
where
Item_id = 1;
私はITEM_IDが無効な識別子
があるというエラーが出ると私は
select *
from
(select Table_name
from Table_mapping
where Item_type = 'box');
をしようとした場合、私はちょうど
Table_name
===========
Box
私は続行するかどうかはわかりません取得します。
を使用する必要があるだろうcolumn_mapping場合は、このSQLFiddle
で仕事を参照してください。ストアドプロシージャを使用する必要があります。 – barsju