- PR -

SQLserver2005 SQL文のパラメータに演算子を代入したい。

1
投稿者投稿内容
しい
常連さん
会議室デビュー日: 2006/07/12
投稿数: 27
お住まい・勤務地: 関東
投稿日時: 2008-10-28 17:27
お世話になっております。
SQL Server2005 + vb.netで開発をしております。

SQL文のパラメータに、演算子(<=や>=)を代入する事はできないでしょうか?

下記のようなSQL文がありまして、@inputに数値が入ってきます。
そこで、@enzanの部分で、>= もしくは <= を代入させて、以上を出すモード/以下を出すモードという切替をしたいという希望があります。

select * from 価格リスト where 値段 @enzan & @input;


お知恵をお借りできれば幸いです。
よろしくおねがいします。
King
ぬし
会議室デビュー日: 2008/06/20
投稿数: 284
投稿日時: 2008-10-28 17:42
パラメータで置き換えるのではなくて
vb.net で SQL 文を生成する時に置き換えるのでは駄目ですか?
めだか
大ベテラン
会議室デビュー日: 2004/11/11
投稿数: 109
投稿日時: 2008-10-28 18:06
if @hantei='>='
select * from 価格リスト where 値段 >= @input
else
select * from 価格リスト where 値段 <= @input

とかではだめですか?
よっしー
大ベテラン
会議室デビュー日: 2007/05/17
投稿数: 143
投稿日時: 2008-10-28 18:24
誰かが書く前に。

select * from 価格リスト where 値段 >= @input AND @hantei = '>='
OR 値段 <= @input AND @hantei = '<='
とか。
かつのり
ぬし
会議室デビュー日: 2004/03/18
投稿数: 2015
お住まい・勤務地: 札幌
投稿日時: 2008-10-29 11:18
シビアなチューニングが要求されないのであれば・・・
以上 = 1、以下 = -1で渡すという方法もあります。
コード:
select * from 価格リスト where 値段 * @hantei >= @input * @hantei


しい
常連さん
会議室デビュー日: 2006/07/12
投稿数: 27
お住まい・勤務地: 関東
投稿日時: 2008-10-29 16:35
おかげ様で、希望の機能が実現できました。皆様ありがとうございました。


Kingさま>
ありがとうございました。
構造上、SQL内でなんとかしないといけなかった為、試行錯誤していました。

めだかさま>
if文を使用する方法、大変勉強になりました。ありがとうございます。
今後if文にも視野を広げてゆきたいです。

よっしーさま>
ありがとうございました。
よっしーさまの手法で、なんとかクリアできました。大変お世話になりました。

かつのりさま>
ありがとうございます。
1と-1を使用するという考え方、大変勉強になりました。
いろいろな場面で使えそうですね。
新しい考え方を得ることができました。
1

スキルアップ/キャリアアップ(JOB@IT)