• ベストアンサー

WHERE句について

numeric, 5(3,0)のフィールドがあり そのフィールドの値が600番台のものを抽出したいのですが どのような方法が一番効率的かご教授ください。 DBはsqlserver2000を使用しています。

  • SENAS
  • お礼率8% (4/46)

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

私ならBETWEEN句を使用します。 WHERE hoge BETWEEN 600 AND 699

その他の回答 (1)

  • osamuy
  • ベストアンサー率42% (1231/2878)
回答No.2

素直に between 600 and 699 と書いといて、あとは、オプチマイザまかせ、とか。 要インデクッス。

関連するQ&A

  • DELETEのwhere句について

    SQL文について教えていただけないでしょうか? 力不足のため苦しんでおります。 宜しくお願い致します。 TBLいいの項目EEが100以外かつFFが50以下で 抽出される全ての項目AAをKEYにしてTBLいいを 削除したいのですがわかりません。 DELETEののwhere句について教えてくいただけ ないでしょうか?。  条件  DB:SQLServer2000   TBLああ AA BB CC DD   TBLいい AA EE FF GG  

  • SQLserver算術オーバーフローエラーについて

    使用環境は DB SQL Server2008 Express 使用ツールは Microsoft SQL Server Management Studio です SQLserver2000からSQLserver2008DBへ移行しようとしているのですが ストアドプロシージャのところでうまくいきません 具体的には、処理を走らせると下記メッセージが出てきます floatをデータ型numericに変換中に、算術オーバーフローエラーが発生しました プロシージャ"○○"は、許可されていないステータスNULLを返そうとしました。 代わりにステータス0を返します 調べると  小数点以下があるフィールド同士を掛けて、その結果の小数点以下をROUNDで切り 捨てた値を小数点のないフィールドに追加しようとするとエラーになる  とありました。 下記 2行あたりが怪しいと思うのですが対処方法がわかりません。 ご教授願えないでしょうか? SET @GetRand = CAST(RAND()*10 AS numeric(1,0)) … SET @GetRand = CAST(RIGHT(CONVERT(varchar,CAST(RAND()*100 AS numeric(2,0))+100),2) As numeric(2,0)) またストアドプロシージャは、VBのようにデバッグで1行単位で処理を確認してい くことはできないのでしょうか?

  • WHERE句を動的設定する方法

    SQLサーバーのストアドプロシジャを記述するにあたりWHEREのフィールド名と値を動的に設定する方法を教えてください。

  • WHERE句でOR ANDを使うと抽出が変

    SQLのwhere句について教えてください。Table_AとTable_Bはjoinされています。 下記の条件で、値を抽出したいです。型はintです。 Field1は必ずNULL Field2は値が1~14のどれか。それ以外にはマッチしない Field3は0か3のどちらかにマッチ。 Field4は2,3,4,8に以外にマッチ。 Field5は0,6のどちらかいにマッチ。 Field6はNULLを抽出 Field7はNULLを抽出 よって、下記のSQLを書きました。しかしながら、Field1~Field3まで抽出を かけた時に、1万件だったのが、Field1~Field5までを含めると、1万2000件に なってしまいます。なぜだかわかりません。何が間違っているかお教え 頂けないでしょうか?また正しいwhere句以下の条件はどのように正しく書けばいいのでしょうか? WHERE `TABLE_A`.`Field1` IS NULL AND `TABLE_B`.`Field2` = 1 or `TABLE_B`.`Field2` = 2 or `TABLE_B`.`Field2` = 3 or `TABLE_B`.`Field2` = 4 or `TABLE_B`.`Field2` = 5 or `TABLE_B`.`Field2` = 6 or `TABLE_B`.`Field2` = 7 or `TABLE_B`.`Field2` = 8 or `TABLE_B`.`Field2` = 9 or `TABLE_B`.`Field2` = 10 or `TABLE_B`.`Field2` = 11 or `TABLE_B`.`Field2` = 12 or `TABLE_B`.`Field2` = 13 or `TABLE_B`.`Field2` = 14 or `TABLE_B`.`Field3` = 0 or `TABLE_B`.`Field3` = 3 or `TABLE_B`.`Field4` <> 2 or `TABLE_B`.`Field4` <> 3 or `TABLE_B`.`Field4` <> 4 or `TABLE_B`.`Field4` <> 8 or `TABLE_B`.`Field5` = 0 or `TABLE_B`.`Field5` = 6 or `TABLE_B`.`Field6` is NULL or `TABLE_B`.`Field7` is NULL

  • sql文のwhere句について

    <環境>sqlserver SQLでパラメータが空白であれば全件取得、パラメータに値が設定されている場合には 条件にHITするデータを抽出したいのですが、一本のクエリで抽出することができるのでしょうか? 空白時パラメータは以下のとおり入ってきます。 @no="" …完全一致 @name="%%" …部分一致 例) SELECT * FROM テーブル WHERE (NO = @no) and ((@name IS NULL) OR (@name IS NOT NULL) AND (NAME LIKE @name)) NAMEは上記クエリにて取得できています。 NOのところはどのようにすればよいでしょうか?

  • sqlserverで書式チェックしたい

    sqlserver2008,2012を使用しています。 あるフィールドの値が、"999-999"の書式になっているかチェックを行いたいのですが、 SQLで簡単にチェックできますか? 文字列(nvarchar)エリアで、3桁の数値+'-'+3桁の数値 以外のデータを抽出したいと思っております。 どなたかご教授お願いします。

  • SQL WHERE句 分岐?

    SQL Server 2005 を使っております。 WHERE句の分岐といいますか、記述の方法がわからないのですが、下記がその部分になります。 下記のコードを実行すると、都道府県、血液型、両方に何かしらのデータが入っているものしか抽出してきません。都道府県、血液型、どちらかの値がNullの場合でも、どちらかの条件が合致していれば、抽出したいのですが、どう記述すればよろしいでしょうか? 下記のコードが Null = Null を認識していれば このコードでも抽出してくるんでしょうが、 Null = Null だと抽出しないんですね。 何卒よろしくお願いいたします。 WHERE (IsNull(@A,dbo.テスト.都道府県) = dbo.テスト.都道府県) AND (IsNull(@B,dbo.テスト.血液型) = dbo.テスト.血液型

  • SQLServerでOracleシーケンスのような機構を実現するには

    いつもお世話になります。 SQLServerで自動採番される仕組みで何かいい方法がないかどうか悩んでいます。 主キーとなる項目に自動採番された値を、アプリケーションでセットした上で、DBに追加する仕組みを考えています。 OracleではSequenceのnextvalなどを使用すれば、番号を自動採番したものを取得することが可能ですが、 SQLServerでこのような仕組みを実現するために何か良い方法はありませんでしょうか? (追加先のDBはSQLServerではなく、自動採番等の機能も無いため、追加する前にアプリケーションでセットする必要がある。) 今までOracleしか使用したことが無く、SQLServerは初めてなので、ご教授頂きたく投稿しました。 よろしくお願いします。 SQLServerは2005を使用しています。

  • access2000のwhere条件なんですが・・・

    今、テーブルAの中に「回数」というフィールドがあります。その値が一定条件以上のレコードだけを抽出したいのです。 抽出条件は、その都度変わってしまうので、kazu=Dcount("回数","テーブルA")-5 としています。 でも、VBAでSELECT~~WHERE[回数]>kazu といれても、kazuが値として読み込まれないみたいで、「パラメータの入力」画面が出てしまいます。 kazuを値として認識させるには、どうしたら良いのでしょうか・・・。

  • 【MySQL】where句で正規表現のようなものありますか?

    お世話になっております。 やりたい事は、例えば`title`フィールドの 頭文字が“あ行”のものとか、 頭文字がアルファベットの(またはアルファベットでない)ものとか の抽出です。 今は地道に where title like 'あ%' or title like 'い%' or ・・・・・・(~お迄) 等とやっています。 “は行”なんかは濁点や半濁点も含め15個つなげています。。 簡単な方法がございましたらご教示願いたいです。 宜しくお願い致します。

    • ベストアンサー
    • MySQL