• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:SQLでwhileやIFを使った場合の返り値について)

SQLでIFやWHILEを使った場合の返り値について

nanura2の回答

  • ベストアンサー
  • nanura2
  • ベストアンサー率50% (4/8)
回答No.1

if @result != 0 BERAK end の辺りを if @result != 0 RETURN(1) end RETURN(0) とかにしてみたらどうでしょう? はずしてたらスイマセン。

関連するQ&A

  • SQLでのCASEの使い方

    ASPからSQLを実行し、DBを操作するプログラムを組んでいます。 SQLをクエリアナライザで実行したときに→のところでエラーが出るのですが、どのようにしたらいいでしょうか? ----------------------------------------------- if object_id('xxxx') is not null  drop procedure xxxx go CREATE PROCEDURE xxxx (  @client_id char(10),  @user_id  char(10),   :(省略)  @code_1  char(6) output,  @code_2  char(6) output,   :(省略)  @code_9  char(6) output ) AS BEGIN  SET NOCOUNT ON  BEGIN TRANSACTION    DECLARE @no     int  SELECT @no = '0'  WHILE (@no <= 9)  BEGIN   SELECT @AAA = ISNULL(MAX job_code), '000000')    FROM TABLE    WHERE client_id = @client_id     And user_id = @user_id    SET @AAA = dbo.fbx_NextAlphanumeric(@AAA)   :(省略)   :   CASE @no →正しくない構文    WHEN 0 THEN SELECT @code_1 = @AAA    WHEN 1 THEN SELECT @code_2 = @AAA →正しくない構文     :(省略)    WHEN 9 THEN SELECT @code_9 = @AAA   END   SELECT @no = @no + 1  END  COMMIT TRANSACTION  RETURN 1 END go ----------------------------------------------- やりたいのは、SQL実行後にOUTPUTする変数「@code_1~9」にWHILEでループしながら求めた変数@AAAをセットしたいのですが。 初歩的なことだとは思いますが、よろしくお願いします。

  • ODBC SQLサーバーでSQLを使いたい・・・

    ODBC SQLサーバーでSQLを使いたい・・・ SET NOCOUNT ON DECLARE @EDATE DATETIME DECLARE @CUNT INT SET @COUNT = 0 WHILE ( @I <> -7 ) BEGIN IF ( DATANAME( WEEKDAY, DATEADD( DD, -1, GETDATE()))) = "金曜" BREAK ELSE SELECT @CUNT = @CUNT + 1 END SET @EDATE = CONVERT( CHAR, CONVERT( VARCHAR, DATEADD(DD, @COUNT, GETDATE()), 112) SELECT @EDATE 実行日からさかのぼり、金曜日の日付を表示したいSQLを作成しています。 なぜか"金曜"がおかしいとエラーが出てしまいます。 どなたかわかる方いましたらご教授お願い致します。

  • 【Transact-sql】 execの結果をoutputパラメータに持たせたい

    タイトルの通り、execの結果をoutputパラメータに持たせたいのですが、 どうすればご存知の方、ご教授お願いします。以下のように、count(*)の結果を持たせたいです。以下にサンプルコードを記載しました。 ---ストアドabc--- ( @aWork int output, @bWork int output, @cWork int output, @IDs varchar ) declare @Sql1 varchar(500) declare @Sql2 varchar(500) declare @Sql3 varchar(500) declare @IDs varchar(500) set = '1,2,3' set @Sql1 = 'select count(*) from a where id = ' + IDs -- @aWork = exec(@Sql1)としたい exec(@Sql1) set @Sql2 = 'select count(*) from b where id = ' + IDs -- @bWork = exec(@Sql2)としたい exec(@Sql2) set @Sql3 = 'select count(*) from c where id = ' + IDs -- @cWork = exec(@Sql3)としたい exec(@Sql3)

  • SQL whereの中のif文について

    SQLの中にif文を使いたいですが、 うまくいきません。 やはりwhereの中で使えないですか? アドバイスお願いします。 実際のSQL文: $sql = "select * from room";     $sql = $sql . " WHERE ((Keisai = 1)"; if(Chinryou1>0){ $sql = $sql . " and (Chinryou1 <= {$rent1})";     }else if(Chinryou1==0){ $sql = $sql . " and (Chinryou2 <= {$rent1})";    } $sql = $sql . ")"; $sql = $sql . " order by Narabijun desc, Name"; $sql = $sql . ";"; $result = mysql_query($sql, $conn); $num = mysql_num_rows($result);

    • ベストアンサー
    • MySQL
  • SQLストアドについて

    SQL超初心者です。 ストアド内でテーブル名を可変にしたいのですが以下のようなエラーメッセージが表示され でません。どなたか教えていただけませんか? <エラーメッセージ> テーブル変数 "@AA" を宣言してください。 ◆環境  sql Sever 2005 ◆コードは以下の通りです。 DECLARE @AA VARCHAR(50) DECLARE @HANTEI CHAR(5) DECLARE @FETCHTABLE1 CHAR(22) DECLARE @FETCHTABLE2 CHAR(22) SET @HANTEI = 'ABCDEF' SET @FETCHTABLE1 = 'DBO.USV_YOSAN' SET @FETCHTABLE2 = 'DBO.USV_JISEKI' BEGIN IF @HANTEI = 'ABCEDF' SET @AA= @FETCHTABLE2 SELECT * FROM @AA PRINT @AA END 以上 よろしくお願いいたします。

  • Access SQLを使ったソートがずれる

    Access2003で以下のfunctionを組みました。 ************************************* Dim SQL As String Dim strList As String SQL = "" strList = "" 'サブテーブルの削除 SQL = "DELETE * FROM SUB_T" CurrentProject.Connection.Execute SQL SQL = "INSERT INTO SUB_T SELECT Master_T.* FROM Master_T WHERE " With Forms!SEARCH! '検索条件がnullの場合 If IsNull(.CODE_SRH) Then SQL = "INSERT INTO SUB_T SELECT Master_T.* FROM Master_T" End If 'コードの条件 If .CODE_SRH <> "" Then strList = "Master_T.CODE Like '" & .CODE_SRH & "%'" End If End With SQL = SQL & strList & " ORDER BY (val(CODE))" CurrentProject.Connection.Execute SQL ************************************* Master_T テーブルの CODE は テキスト型 内容は以下のとおり "001","あいうえお",.... "003","さしすせそ",.... "002","かきくけこ",.... "013","GHI",.... "011","ABC",.... 検索条件Nullの場合SUB_T テーブルには "001","あいうえお",.... "002","かきくけこ",.... "003","さしすせそ",.... "011","ABC",.... "013","GHI",.... とインサートされるはずですが、何回か実行すると・・・・ "003","さしすせそ",.... "011","ABC",.... "013","GHI",.... "001","あいうえお",.... "002","かきくけこ",.... こんなだったり "011","ABC",.... "013","GHI",.... "001","あいうえお",.... "002","かきくけこ",.... "003","さしすせそ",.... このような感じに並びます。 試しに、明示的に"ORDER BY (val(CODE)) ASC"にしても また降順ではどうかと思い、"ORDER BY (val(CODE)) DESC"にしても 同じ現象が出ます。 コードの条件を入れても同様な現象が出ます。 何が原因なのかさっぱり分かりません。 Accessのどこかを確認すべきか、VBAを見直すべきなのか ご教授いただきたいです。

  • CでSQLのテーブルを読む

    SQLのテーブルがあります。 レコードを1行ずつ読むソースを教えてください。 データベースはさっぱり分かりません。 create table mytable (  name text,  age int ); このテーブルからint型のageを列挙したいと思います。 intを読むわけですから EXEC SQL BEGIN DECLARE SECTION; int i; EXEC SQL END DECLARE SECTION; が必要ですよね。あとはさっぱり分かりません。

  • T-SQLのカーソルで

    つい先日、ここで「T-SQLのカーソルにパラメータは使えますか?」という質問をして、使えることがわかって解決したんですけど、 実際にプロシージャで使ってみると、カーソルから結果が返りません。 以下のように書いています。 CREATE PROCEDURE hoge(@param1 int) AS DECLARE C1 CURSOR FOR SELECT CODE_1 FROM TableA WHERE COLUMN_1 = '0' AND COLUMN_2 = @param1 BEGIN .... END @param1をローカル変数に代入し、そのローカル変数をカーソルに書いても同じです。 また、カーソル定義の「@param1」をプロシージャ実行時の引数に渡していた数値に書き換えると結果は返ります。 T-SQLは初めてなもので原因が全く分かりません。 何が間違っているのでしょうか?

  • SQLのどこがおかしいでしょうか?

    PHP4、MySQLです。 for($i=1;$i<34;$i++){ $sql = "select count(group) as cnt".$i." "; $sql.= "from stock "; $sql.= "where group=".$i." "; //print "sql= ".$sql."<br>"; $result = mysql_query($sql,$db) or die("失敗しました".mysql_error ()); $Row = mysql_fetch_array($result, MYSQL_ASSOC); $cnt.$i = $Row['cnt".$i."']; } としています。どこがおかしいでしょうか? 教えてください。 よろしくお願いいたします。

    • ベストアンサー
    • PHP
  • VB2005のSQLにて定義した変数の使用について

    VB2005、DBはSqlserver2005 についてです。 以下のようなSQLにて変数に値を設定して、フォーム上のテキストボックスにその値を 表示させたいのですが、うまくいきません。 どうしたらよいかアドバイス頂けると助かります。 <SQL> command.CommandText = "BEGIN DECLARE @SQL-todoufuken_code VARCHAR(20) " & _ "SET @SQL-todoufuken_code = (SELECT MAX(todoufuken_code) FROM tbl_todoufuken)" & _ "END" <テキストボックスへの設定> txtTodoufuken_code.Text = @SQL-todoufuken_code