SQLのwhere条件でマッチした条件を併記したい

実現したいこと

Google bigQuery で特許検索をしています。
where条件で類似検索をしているため、検索語にどの検索条件で検出されたかを確認する列を付与したいと考えています

考えたSQL

SELECT application_number, CASE WHEN application_number LIKE 'US%16%926925%' THEN 'US%16%926925%' WHEN application_number LIKE 'US%16%941577%' THEN 'US%16%941577%' END AS match FROM `patents-public-data.patents.publications` WHERE application_number LIKE 'US%16%926925%' OR application_number LIKE 'US%16%941577%'

前提

結果のjsonです

[{ "application_number": "US-202016926925-A", "match": "US%16%926925%" }, { "application_number": "US-202016941577-A", "match": "US%16%941577%" }, { "application_number": "US-202016941577-A", "match": "US%16%941577%" }, { "application_number": "US-202016926925-A", "match": "US%16%926925%" }]

課題

SQLが長いため、クエリの文字列が1024字を超えるとエラーになります。
SQLで戻ってくる順番は、クエリの順番と同じにならないので、対応付けは必須です。

質問

もう少し、SQLをコンパクトにして、同じ結果を出せませんでしょうか?
もしくは、
SQL後のJSONレスポンスに対して、プログラミング的に類似を探すしかないでしょうか?

何か良いアイデアがあればと思います。

コメントを投稿

0 コメント