[[20211110115759]] 『MicrosoftクエリにてSQLで複数条件で抽出しようと』(たらちゃん) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『MicrosoftクエリにてSQLで複数条件で抽出しようとすると落ちる』(たらちゃん)

60ぐらい条件つけると落ちてしまいますが、
よくあることなのでしょうか。
対策とかありますか?

< 使用 Excel:unknown、使用 OS:Windows8 >


 こんにちわ〜 ^^
すごい条件ですね^^;
わたし、SQLはあまり詳しくない ← sqlだけか?。。。wすみません
のでよくわかりかねますが。
データーだけ取り込むだけ取り込んで、あとはvbaで
条件[if文60件書くとか]ではだめなのでせうね。。。
vbaでも60個もif書いたこと無いか( ̄▽ ̄)
そんな、単純なお話でなければ、このコメントは無視してくださいね〜〜〜
m(_ _)m
(隠居Z) 2021/11/10(水) 14:07

私の環境ではそのようなことは起こりませんでした(mso16.0 oracle12)
落ちるとはどのようなことを指すのですか?
抽出するデータの量が多すぎなどでタイムアウトしているならSQLを見直してはどうでしょうか?
試したSQL
with tbl(num)AS(
    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


そんなに条件必要なこと自体に疑いを持ってしまう.
sqlってそんなに長くなるものでしたっけ?
(az) 2021/11/10(水) 17:07

 私自身は普段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.