- ベストアンサー
ビューで引数を使いたい
4つのテーブルのいずれかをアクセスしますが、 select文はひとつでwhereでテーブルを指定したいので、 例:select * from ビュー where table_no=1 とかで、table_noの値でアクセスするビューは 作れますか? ※この例の場合、select * from table1が実行したい。 4つのテーブルは全て同じ構造で、 データが違うのみです。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
ビューでは不可能だと思います。 同じ様なアクセス方法を行いたいのであれば、 テーブル値を返すユーザー定義関数を作成する方法があるかと思います。構造は同じと言う事なので、1つの関数で済むと思いますし。 例:Select * From ユーザー定義関数(1~4のパラメータ) 上記例の様な使い方が可能です。
その他の回答 (1)
- STICKY2006
- ベストアンサー率29% (1536/5269)
回答No.1
こんちは。 多分、出来ないって回答でいいとは思うんですが。。。 ビューはそれだけで完結しているオブジェクトなので、やりたい場合は、ストアドなどを使う方がよいようです。 単純に、ストアドにテーブルナンバー渡して、ビューを呼び出す。じゃダメなんでしょうかね?? 自分だったら、あらかじめ、ビューの1~4を作っておいて、それぞれテーブル1~4をselectするビューにしておき ストアドやらプログラムの方から、パラメータを読み込んでどのビューを使用するか判断させますかね。。。