• 締切済み

クエリビルダで列名を変数にしたいが

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 @列名は変数のつもりです。 このようにできればよいと思っていますが・・・ よろしくおねがいします

みんなの回答

  • 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が返ってくる。

shitochin
質問者

補足

返信遅くなり申し訳ありません。 ご回答ありがとうございます。 ご回答してくださった方法でやりことはできます。 ですが、Whenが100行にもなってしまいます。 もっとスマートな方法はございませんでしょうか?

関連するQ&A