- 締切済み
クエリビルダで列名を変数にしたいが
VisualStudio2010でwebアプリを作成しています。 クエリビルダでSQL文を作成しSQLサーバにアクセスしています。 このSQL文でわからない点があります。 列1、列2、列3のフィールドを持つテーブルがあるとします。 ドロップダウンリストで選択した項目により、ある時は列1だけ取得し ある時は列2だけ取得し、ある時は列3だけ取得する様なSQL文を作りたいのですが、どうすればよいかわかりません、列名を変数にできればよさそうなんですが、そんなことできますか? ある時は SELECT 列1 FROM table1 ある時は SELECT 列2 FROM table1 ある時は SELECT 列3 FROM table1 としたいので SELECT @列名 FROM table @列名は変数のつもりです。 このようにできればよいと思っていますが・・・ よろしくおねがいします
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- Siegrune
- ベストアンサー率35% (316/895)
回答No.1
SELECT case when (ドロップダウンリストの値) = 1 then 列1 when (ドロップダウンリストの値) = 2 then 列2 when (ドロップダウンリストの値) = 3 then 列2 end FROM table1 (ドロップダウンリストの値) は変数として引き渡してもいいし、Select文を組み立てるときに 固定値をセットしてもいい。 固定値の例) (ドロップダウンリストの値)が1なら、 SELECT case when 1 = 1 then 列1 when 1 = 2 then 列2 when 1 = 3 then 列2 end FROM table1 となるので、列1が返ってくる。
補足
返信遅くなり申し訳ありません。 ご回答ありがとうございます。 ご回答してくださった方法でやりことはできます。 ですが、Whenが100行にもなってしまいます。 もっとスマートな方法はございませんでしょうか?