性格いい人が優勝

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

A 回答 (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行にもなってしまいます。
もっとスマートな方法はございませんでしょうか?

補足日時:2012/12/14 13:43
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!