SQLlike
クエリが必要で、最初に順序付けられた入力パラメーターで始まる結果があり、残りの結果はアルファベット順に並べ替えられます。
だから私が持っているなら
Foobbb
aaafoo
Fooaaa
bFoob
cccfooccc
そして、私はそれを次のようにソートしたいfooを検索します。
Fooaaa
Foobbb
aaafoo
bFoob
cccfooccc
私の最も関連性の高いアイテムが最初になるように。これを行うための明確で優れたパフォーマンスの方法が必要ですか?一時テーブルを作成することはできましたが、オーバーヘッドが大きすぎると思いました。
私は試した
DECLARE cemployer CURSOR
WITH RETURN
FOR SELECT employer
FROM ((SELECT employer_name, 1 AS grp
FROM employer e
WHERE Upper(employer_name) LIKE Upper(i_employer|| '%'))
UNION
(SELECT employer_name, 2 AS grp
FROM employer e
WHERE Upper(employer_name) LIKE Upper('%'||i_employer|| '%')))
ORDER BY grp,
employer;
OPEN cemployer;
しかし、これを行うと、
Fooaaa
Foobbb
結果セットの下部で再度繰り返されます。DB2では、外部クエリを区別することはできません。substringやlocate、またはその他の文字列関数を実行することでこの問題を解決できることはわかっていますが、これを実行して重複が返されないようにするための最も洗練された方法を知りたいと思いました。