[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『MicrosoftクエリにてSQLで複数条件で抽出しようとすると落ちる』(たらちゃん)
60ぐらい条件つけると落ちてしまいますが、
よくあることなのでしょうか。
対策とかありますか?
< 使用 Excel:unknown、使用 OS:Windows8 >
こんにちわ〜 ^^ すごい条件ですね^^; わたし、SQLはあまり詳しくない ← sqlだけか?。。。wすみません のでよくわかりかねますが。 データーだけ取り込むだけ取り込んで、あとはvbaで 条件[if文60件書くとか]ではだめなのでせうね。。。 vbaでも60個もif書いたこと無いか( ̄▽ ̄) そんな、単純なお話でなければ、このコメントは無視してくださいね〜〜〜 m(_ _)m (隠居Z) 2021/11/10(水) 14:07
select 1 from dual
union all
select num + 1 from tbl where num<100
)
select * from tbl where
num = 1
or num = 2
or num = 3
or num = 4
or num = 5
or num = 6
or num = 7
or num = 8
or num = 9
or num = 10
or num = 11
or num = 12
or num = 13
or num = 14
or num = 15
or num = 16
or num = 17
or num = 18
or num = 19
or num = 20
or num = 21
or num = 22
or num = 23
or num = 24
or num = 25
or num = 26
or num = 27
or num = 28
or num = 29
or num = 30
or num = 31
or num = 32
or num = 33
or num = 34
or num = 35
or num = 36
or num = 37
or num = 38
or num = 39
or num = 40
or num = 41
or num = 42
or num = 43
or num = 44
or num = 45
or num = 46
or num = 47
or num = 48
or num = 49
or num = 50
or num = 51
or num = 52
or num = 53
or num = 54
or num = 55
or num = 56
or num = 57
or num = 58
or num = 59
or num = 60
(焼肉) 2021/11/10(水) 17:03
私自身は普段ADO使ってデータ取り出してますので、ちょっと事情が違うのかも知れませんが、 たまにめちゃくちゃ長いSQLになった時はエラーが返ってきますね。(それでも落ちはしませんけど)
たとえば20万件の商品マスタの内、特定の2万件に用事がある時、 その2万件を絞り込む条件が主キーしかないし規則性もない。 別テーブル作ってINNER JOINなりEXISTSなりしちゃえばいいんですが、 それ作る手間があるなら(どうせ一過性の処理出し)SQLで直接やっちゃおうとして...みたいなケースです。
たいてい1万件以内ずつに分けて処理したらイケたりします。
つまりこういう場合って「WHERE条件が多い」というよりは 結果的に「SQLが長すぎた」事が原因で、クエリそのものが成立せずエラーになった訳です。
なので実感としては 真っ当な条件なら60くらい屁でもないと思うんですよね。
って事は、 条件の連結方法(ANDとORの使い方とか?)に矛盾があったりして 例えばとてつもない量のデータを呼び出している事になってたりしないかな? とか 一旦、そっちの方を疑ってみた方がイイかも知れません。
(白茶) 2021/11/10(水) 18:10
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.