2016-10-06 17 views
-2

この問題を解決する最善の方法を試しています。ストアドプロシージャ内のifステートメント

私は大学で教えられた活動のデータベーステーブルを持っています。大学にはいくつかのキャンパスがあり、ドロップダウンリストに基づいて各キャンパスのグリッドビューを表示しようとしています。部屋に基づいてCampusOccurredというアクティビティテーブルフィールドを更新する必要があります。部屋はEMG12、OG114、DS15です。

部屋で起動した場合: -

E -
Oキャンパスを獲得 - おでんキャンパス
D - ドーネンキャンパス

My idea at the moment is:- 
For each row in Activites 
If Room MyString.ToCharArray()[0] = E 
Then Update CampusOccurred = Earn 
Else If Room MyString.ToCharArray()[0] = O 
Then Update CampusOccurred = Odean 

私は自分自身がドロップダウンリストを表示し、GridViewの残りの部分を行うことができますが、私はちょうど上記について行く最良の方法を確認していない。 SQLでIf文を実行することは可能ですか?あなたがデータ、その後の仕事があなたのために行われているデータベースからこのように、フェッチした場合

select . . ., 
     (case when left(Room, 1) = 'E' then 'Earn Campus' 
      when left(Room, 1) = 'O' then 'Oden Campus' 
      when left(Room, 1) = 'D' then 'Donen Compus' 
     end) as Campus 

+0

http://stackoverflow.com/questions/63447/how-to-perform-an-if-then-inを-an-sql-select – Alexan

+0

質問には[tag:c#]と何が関係していますか?私はあなたが質問タイトルに基づいてストアドプロシージャでこれをしたかったと仮定しています – Kritner

+0

使用しているdbmsにタグを付けます。 ANSI SQLに準拠したストアドプロシージャは、ほんの数dbmsの製品しかありません。 – jarlh

答えて

2

私が正しくあなたの要求を理解していれば、あなたはアップデートでcase声明たい:

update Activities 
set CampusOccured = case left(Room,1) 
         when 'E' then 'Earn' 
         when 'O' then 'Oden' 
         when 'D' then 'Donen' 
        end 
+0

まさに何をしようとしているのですが、これは今試してみてください。ありがとうございました:) – Alexandria

+0

@Alexandria喜んで助けてください。質問があなたのために働くならば、答えとしてマークしてください。 – Gasper

+0

私は試してみるとエラーになります。これは私がやっていることです。プロシージャを作成する[dbo]。【CampusOccurred] AS Activities.CampusOccurred 更新アクティビティ セット=(ケース左(ルーム、1) 'E' は、次いで 'を稼ぐ' 'O' のときに 'おでん' 'D' を 'BEGIN Donen ') END – Alexandria

2

あなたはこのような何かを行うSQLクエリを書くことができます。

注:すべてのデータベースのほとんどがleft()をサポートします。すべてが同等の機能をサポートしています。

+0

申し訳ありませんが、私はこの仕組みが理解できません。この後に私は更新ステートメントをしますか? – Alexandria

+0

@Alexandria。 。 。グリッドビューでデータが必要な場合は、 'select'だけで十分です。実際にデータを変更する必要はありません。 –

関連する問題