- 締切済み
【SQLServer】何も処理しない場合の記述について
【SQLServer】何も処理しない場合の記述について お世話になってます。 ご存知の方いらっしゃいましたら教えてください。 Oracleでは、IF文の中で何も処理したくない場合、明示的にNULLと書けば、コンパイルできます。 IF XXXXX THEN A = 100 ELSE -- 何もしない NULL END たとえ何も処理しない場合でも、明示的にELSE句を 書きたい場合は、 SQLServerの場合、何をかけばよいのでしょうか? 今のところ下記のように、ELSEの場合は意味の無い処理を記述しています。 IF XXX BEGIN A=100 END ELSE IF BEGIN -- 何も処理しない A = A END A=Aは意味の無い処理なのですが、削除するとコンパイルが通らなくなってしまうのでやむなく記述してます。 どなたかいいアイデアありましたらご教授くださいませ。 よろしくおねがいします。
- mamiyak
- お礼率89% (89/100)
- SQL Server
- 回答数2
- ありがとう数2
- みんなの回答 (2)
- 専門家の回答
関連するQ&A
- MYSQL ストアドプロシージャの記述方法
MYSQLのストアドプロシージャについて分からないことがあり質問させて頂きます。 SQLのwhere句の部分を引数によって条件分で変更させたいと考えています。そこでORACLEの場合は変数にいれて最後に明示的にSQLを発行して いたので可能だったのですが、MYSQLの場合はどういった記述になる のかわかりません。やりたいことは下記のような感じです。 ORACLEの場合は procedure prctest(pc out refcur,a in varchar2,b in varchar2) is sqldata varchar2(1000); whereinfo varchar2(1000); begin sqldata := 'select ID , NAME from testTbl '; if (a IS NOT NULL) then whereinfo := whereinfo || ' acol = a ' ; end if; if (b IS NOT NULL) then if (whereinfo IS NOT NULL) then whereinfo := whereinfo || ' and '; end if; whereinfo := whereinfo || ' acol = b ' ; end if; if (whereinfo IS NOT NULL) then sqldata := sqldata || ' where ' || whereinfo ; end if; open pc for sqldata; (ここでSQLが入ったSQLを発行) end prctest; (抜粋) ストアドをあまり使用したことがなく良い説明ではないかも しれませんが、アドバイスの方頂けたらと思います。 よろしくお願いします。
- 締切済み
- MySQL
- シェルからsqlplusたたいて、ストアド呼び出し後の処理について。
質問です。 shellからSqlplus→ストアド呼び出しを行います。 まず、ソースをご覧下さい。 VARIABLE ret NUMBER; DECLARE cnvtStat NUMBER; BEGIN cnvtStat := 0; cnvtStat := PK_TEST.TEST(A); IF ( cnvtStat >= 0 ) THEN :ret := 0; ELSE :ret := 9; END IF; EXCEPTION WHEN OTHERS THEN :ret := 9; END; となっています。 困っていることは ストアドのヘッダ部がコンパイルエラーの場合、 EXCEPTIONに引っかかってくれないのです。 本体のコンパイルエラーはEXCEPTIONに引っかかります。 このままでは、ヘッダがコンパイルエラーで ストアド処理が行われないのに、 呼び出し側では気づかず処理を続行してしまいます。 どのようにエラーハンドリングすればよいのか 皆さんお手数かけますが、アドバイスよろしくお願いします。
- ベストアンサー
- Oracle
- Verilog-HDLのFF記述について
先程アップしたのは、図が変になってしまいました。 改めて質問します。 1つのFF(非同期リセット)をVerilog-HDLで記述すると、以下のように記述出来ますよね? always @ ( posedge CLK or negedge RESET ) begin if ( !RESET ) begin Q <= 1'b0 ; xQ <= 1'b1 ; end else begin Q <= D ; xQ <= ~D ; end end この1つのFFをalways文を2つ使って記述出来るんですか? ご回答宜しくお願いします。
- 締切済み
- その他(プログラミング・開発)
- SQLServer2000で。
こんにちは。早速質問させて頂きます。 VB6.0からSQLServer 2000に、ADOで接続を行っています。 デ-タ更新時に、デ-タ単位でロックをかけたいのですが、どのように記述すればよいのか分かりません。 SELECT文だと、テ-ブル名の後ろに【WITH~】と記述するというのは分かったのですが、INSERT/UPDATE/DELETEの際はどのようにすればいいのでしょうか? もう一つ。 デ-タSELECT時に、項目にNULL値が入っていた場合、NULL以外の値で取得する方法はありますか?(Oracleにはあったような…) どなたか知識のある方、教えて下さい。 よろしくお願いします。
- ベストアンサー
- その他(データベース)
- 秀丸での正規表現:複雑な条件を指定する場合 続き
この質問は、 http://okwave.jp/qa/q8757880.html の続きです。 具体的な事を全然書いてませんでした。すみません。 Verilog-HDLというハードウェア記述言語での話です。 上記であげたパターンは、サブモジュールのインスタンス記述 (プログラムで言うサブルーチン呼び出しのようなもの)です。 サブモジュールのインスタンス記述を強調したいと思っていますが、それ以外にも always @(posedge clk)begin if(xxx)begin ... end else if(yyy)begin //←ここで誤検出 ... end end というサブモジュールでない記述で誤マッチしてしまうのです。 話それてしまいますが always @(posedge clk)begin if(xxx)begin ... end else begin if(yyy)begin ... end end end とかけばよい、という手もあるのですが、他者のコードも受け入れる関係上、その手も難しいのが実情です。 話が前後してしまいましたがサブモジュールインスタンス記述は、 sub_mod_name instance_name ( .... のようになっており、1語目、2語目ともに任意の文字列となっています。 else ifともに言語上の予約語であり、これはインスタンス記述にはなり得ません。 『これにマッチする正規表現」かつ『else if(』にはマッチしないというのは、そもそも『ひとつの正規表現』では表せないのかと悩んでおります。 長くなりすみません。 なにか抜けている点などありましたらご指摘頂けると助かります。
- ベストアンサー
- その他([技術者向] コンピューター)
- イベント処理(コンポーネントの配列の場合)を簡単に記述したい
i-appliをpanelで作成しています。 コンポーネントを配列にして配置した場合、 イベントを受け取るときには個別に処理を記述するしかないのでしょうか? ListBox[] lbox = new ListBox[16]; Button[] btn = new Button[16]; ... public void componentAction(Component w_component, int w_type, int w_param){ if(w_type == BUTTON_PRESSED) { if(w_component == btn[0]){ ... } else if(w_component == btn[1]){ ... } ... else if(w_component == btn[15]){ ... } // ↑簡単に記述できないでしょうか? } if(w_type == SELECTION_CHANGED){ if(w_component == lbox[0]){ ... } else if(w_component == lbox[1]){ ... } ... else if(w_component == lbox[15]){ ... } } } よろしくお願いします。
- 締切済み
- Java
- SQLServerでの副問合せについて
いつもお世話になります。 当方SQLServerをあまり使った事がなくSQLの組み方で少々てこずっております。そこでちょっとお知恵をお借りしたく質問致しました。 処理内容としましては、ある条件でテーブル内のデータを削除するって事なんですが、オラクルで記述するなら DELETE FROM AAAA WHERE (あああ,いいい) IN (SELECT あああ,いいい FROM BBBB GROUP BY あああ,いいい) となるのですが、この構文をSQLServerで記述すると構文エラーとなってしまいます。 まあこの構文が実際には使えて私の記述がおかしいだけのかもしれないのですが、もし使えないのであればどのように記述すればよいのでしょうか? 申し訳ありませんが、宜しくお願いします。 ちなみにSQLServerは2000を使用しております。
- ベストアンサー
- SQL Server
- 繰り返し処理で
以下のEXCELデータを【Sheet1】に取り込む 【Sheet1】 A B C 1 2008/1/1 0:00 100 100 2 2008/1/1 1:00 100 100 3 2008/1/1 2:00 100 100 この時最終行のA3の文字列を変数に入れる ↓ 【Sheet1】の全セルをクリア ↓ 【2回目のデータ】 A B C 1 2008/1/1 2:00 100 100 2 2008/1/1 3:00 100 100 3 2008/1/1 4:00 100 100 この時,1回目のデータの最終行だったA3の文字列【2008/1/1 2:00】と 2回目のデータのA1【2008/1/1 2:00】を比較して、 同じであれば、A2行目から処理を開始 ※ もし比較して一致しなければ1行目から処理 ↓ 【Sheet1】の全セルをクリア ↓ 2回目のデータの最終行だったA3の文字列【2008/1/1 4:00】と 3回目のデータのA1文字列を比較 一致したら2行目から処理 ↓ これの繰り返し処理 マクロを作ってみたのですが、何かもっとこうしたほうがいい様な書き方あれば 教えていただきたく思っているのですが・・・; あとContinueに代わる、繰り返し関数?ってありますでしょうか? ------------------------------------------------------------------------------- Gyo = 100 x = Null For h = 1 To Gyo If h = 1 Then 'nullでない場合 if x := "" then 'A1とxを比較して同じであればコンティニュー If x = Sheets(SheetName).Cells(1,1) Then continue '←Forに戻る End If End If else if h = Gyo then '最終A行のデータをx変数に格納 x = Sheets(SheetName).Range("A100").End(xlUp).Row End If Next h -------------------------------------------------------------------------------
- ベストアンサー
- オフィス系ソフト
- Verilog記述方法に関して
以下のVerilog記述についてどの様な記述が一般的か教えてほしい のですが? QuartusIIにて合成を行っているのですが、 「Can't resolve multiple constant drive for net ****」の エラーメッセージが発生します。 記述は以下の様なもので、別々のクロックでalways内から同じ変数 に代入しています。これが問題の様ですが、これを回避するための 一般的な処理方法はどの様にすればよいのでしょうか? Verilog初心者で、この様な処理自体がナンセンスなのかもしれません が、どなたか分かる方御願い致します。 【抜粋のため分かり難いですが記述内容は以下の様なもの】 always@(posedge clkB) begin : ClrV<= 1'b1; : end always@(posedge clkA) begin : if(ClrV) ClrV<= 1'b0; : end 以上
- ベストアンサー
- その他(プログラミング・開発)
- verilog HDL のレジスタ記述について
こんにちは verilog初心者です。論理合成をしていて気になる点があったので質問させていただきました。 二つのクロックの立ち上がりで書き込むレジスタを記述していて、 (全て1bit、clkはクロック) always @(posedge clk1 or posedge clk2) begin q <= d; end としたところ、シミュレーションはできますが論理合成はできませんでした。 自分の持っている参考書に「複数の書き込み信号があるレジスタはない」という記述があったので一応納得しました。 ところが、 always @(posedge clk1 or posedge clk2) begin if (clk1==1) q <= d; else if (clk2==1) q <= d; end と記述すると論理合成できてしまいます。 両者の書き込み信号に対する振る舞いは同じように思うのですが、一体何が違うのでしょうか。 わかる方いましたら是非ご教示下さい。よろしくお願いします。
- ベストアンサー
- その他(プログラミング・開発)
お礼
なるほど。 以降の処理が何もない場合はそれでよいかもしれません。 ありがとうございました!