- PR -

動的SQLについて

1
投稿者投稿内容
そら豆
常連さん
会議室デビュー日: 2007/05/10
投稿数: 21
投稿日時: 2007-09-27 17:53
御世話になります。
そら豆と申します。

SQL文についてご教授願います。
SQL-SERVER 2000 のストアドプロシジャーで、WHERE句(値ではなく、条件)が、
実行する都度に変わる場合、どのようにSQL文を書けばよろしいのでしょうか?

WHERE句の値が変わるだけあれば、
sp_executesql を使用すればよいと解ったのですが、
条件が変わる場合のSQL文が解りませんでした。

ご教授宜しくお願い致します。

かずくん
ぬし
会議室デビュー日: 2003/01/08
投稿数: 759
お住まい・勤務地: 太陽系第三惑星
投稿日時: 2007-09-28 09:30
どう変わるのか詳しく

たとえば、複数の検索条件があって、そのうち入力された部分のみで抽出を行いたいとか?

もしそうなら、以下の方法は?
8-2 case式でis not falseを模倣(oraclesqlpuzzle.hp.infoseek.co.jp)
よっしー
大ベテラン
会議室デビュー日: 2007/05/17
投稿数: 143
投稿日時: 2007-09-28 12:46
どこになやんでいるのか分からないです。

やった事を書いて頂けますか?
そら豆
常連さん
会議室デビュー日: 2007/05/10
投稿数: 21
投稿日時: 2007-09-28 13:41
よっしー様、
かずくん様
ご回答ありがとうござました。

御世話になります。
そら豆です。

漠然としすぎた質問をしてしまい申し訳ありませんでした。
質問内容を少し変えます。

ある条件(画面からの条件)により、
抽出条件が以下のように異なる場合
sp_executesqlは使用できないのでしょうか?
また、使用できたとしても、抽出条件が全く異なるものとなる為、
sp_executesqlを使う意味(キャッシュ)は無いのでしょうか?

条件A
select * from 商品マスタ where 商品コード=1

条件B
select * from 商品マスタ where 商品コード=1 and 営業所コード=1
よっしー
大ベテラン
会議室デビュー日: 2007/05/17
投稿数: 143
投稿日時: 2007-09-28 15:28
条件Aの時、@Z=1
条件Bの時、@Z=0

select * from 商品マスタ where 商品コード= @X and (営業所コード=@Y or 1 = @Z)

とかでしょうか?
かずくん
ぬし
会議室デビュー日: 2003/01/08
投稿数: 759
お住まい・勤務地: 太陽系第三惑星
投稿日時: 2007-09-30 13:54
引用:

そら豆さんの書き込み (2007-09-28 13:41) より:

条件A
select * from 商品マスタ where 商品コード=1

条件B
select * from 商品マスタ where 商品コード=1 and 営業所コード=1



てゆーか、それを実現する方法の一つがこれ↓
8-2 case式でis not falseを模倣(oraclesqlpuzzle.hp.infoseek.co.jp)
1

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