こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

締切り済みの質問

結果を1行に編集するSQL

SQLは初心者なんで、プログラムで実装するしかないかの判断もできなく相談しています。

CTRL_TBL は以下のとおりです
NO COLNANE
1 FIRSTNAME
2 LASTNAME
3 ADDRESS
4 YEAR

DATA_TBLは
FIRSTNAME LASTNAME ADDRESS YEAR
TARO YAMADA CHIBA 23
JIRO SASAKI GUNMA 32
HANAKO SATO SAPPORO 25

CTRL_TBLで動的に指定したNOの列を表示したいのです
例として、NO IN (1,4)の場合には結果に
FIRSTNAME YEAR
TARO 23
JIRO 32
HANAKO 25

SELECT (
SELECT COLNANE FROM CTRL_TBL WHERE NO IN (1,4) )
FROM DATA_TBL;

上記では当然エラーとなります。
実現可能なsqlは作成可能でしょうか?

投稿日時 - 2007-09-14 21:44:55

QNo.3345324

困ってます

このQ&Aは役に立ちましたか?

2人が「このQ&Aが役に立った」と投票しています

回答(1)

ANo.1

selectで抜き出す項目を動的に変更したい、ということなら純粋なSQLでは無理でしょう。

decodeやcase使って変換は可能かもしれませんが、項目自体を表示しないというのは無理だと思います。

普通この手のことを行う場合はvbやaspなどでsql文字列を
条件によって連結していき実行させるような仕組みで行います。

投稿日時 - 2007-09-14 22:08:06

お礼

プログラムによる作り込みが必要ですよね?
ありがとうございました

投稿日時 - 2007-09-14 22:26:05

あなたにオススメの質問