電子書籍の厳選無料作品が豊富!

下記のようなSQLがあるとき、最も検索結果が多くなる●(抽出条件)を
取得したいのですが、わかるかたいらっしゃいますか。
(●画面から入力される抽出条件。)

select *
from A
where A.a1 like '●%'
or A.b1 like '●%'

質問が簡易ですみませんが、よろしくお願いします。

A 回答 (2件)

●がNull(あるいは空文字)も、%や?等の特殊記号も入力できないという条件ならば


(この条件でなければ、a1もb1もnullのレコードを除く全レコードが取得されるのでそれが最大)

select x.Moji,count(*) cnt from
(
select
substr(A.a1,1,1) Moji
from A
where a1 is not null
union
select
substr(A.b1,1,1)
from A
where b1 is not null
and ( a1 is null
or substr(A.a1,1,1) <> substr(A.b1,1,1)
)
) x
where x.Moji is not null
group by Moji
order by cnt desc
の1行目に出てくる文字が最大件数。
(SQLは未検証なので多少間違えているかもしれません。)
    • good
    • 0

一般論では元データによる。


極論を言えば、LIKE '%%'。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!