テーブルから最も近い一致を返すクエリを作成しようとしています。テーブルは階層を表し、次のようになります。
Hier_Code Group1 Group2 Group3
_________ ______ ______ ______
A 1 1 5
AA 1 2 5
AAA 1 2 5
AAB 1 3 5
AB 2 3 5
ABA 2 3 5
ABB 2 3 5
私が探している値は完全に一致しない可能性があります。その場合、次のレベルに「ロールアップ」して一致を見つけたいと思います。例えば:
Value Returns:
A 1 1 5 (Perfect match)
AAC 1 2 5 (AA is closest)
AABB 1 3 5 (AAB is closest)
アイデアは、一致するものが見つかるまで、検索語から一度に 1 文字ずつ削除するというものです。私はこれを再帰的な CTE と WHILE ループで試してみましたが、役に立ちませんでした。
助言がありますか?
前もって感謝します