お忙しいところ失礼いたします。
「Aに、aが含まれる場合はアを、b又はc又はdが含まれる場合はイを、e又はfが含まれる場合はウをそれぞれ返し、いずれも含まない場合は何も返さない(またはエを返す)」
以上の内容のクエリコマンド(ツリークエリ用ではなくテキスト表示用)はどのように記述したらよいでしょうか?
(#15820(2024.11.24)の投稿者の方が若干つぶやかれていましたが特にご回答がなかったようなので改めてお尋ねさせていただきます。)
ちなみにお遊びでChatGPTに尋ねたら次の回答が返ってきました(笑)
ご質問の内容は、**TuneBrowser の「テキスト表示用クエリ(表示書式)」**で条件分岐を行いたい、という理解で問題ありませんね。ツリークエリではなく、カラム表示・テキスト表示で使う前提ですね。
基本的な考え方(TuneBrowser流)
TuneBrowser の表示用クエリでは、
if(条件, 真の場合, 偽の場合)
contains(対象, “文字列”)
or(条件1, 条件2, …)
といった関数を**入れ子(ネスト)**で使うのが王道です。
SQL 的な CASE はありませんが、if を重ねれば同等のことができます。
ご要望どおりの記述例(何も返さない場合)
条件整理
A に a が含まれる → 「ア」
A に b または c または d が含まれる → 「イ」
A に e または f が含まれる → 「ウ」
どれも含まれない → 空文字
実際のクエリ記述例
if(contains(A,”a”),”ア”,
if(or(contains(A,”b”),contains(A,”c”),contains(A,”d”)),”イ”,
if(or(contains(A,”e”),contains(A,”f”)),”ウ”,
“”
)
)
)
これを テキスト表示用の式としてそのまま使用できます。
「含まれない場合にエを返す」版
最後の “” を “エ” に置き換えるだけです。
if(contains(A,”a”),”ア”,
if(or(contains(A,”b”),contains(A,”c”),contains(A,”d”)),”イ”,
if(or(contains(A,”e”),contains(A,”f”)),”ウ”,
“エ”
)
)
)
実務的な補足(重要)
評価は上から順番に行われます
→ 例えば a と b の両方を含む場合でも、最初にマッチした「ア」が返ります。
大文字・小文字は contains は区別します
→ 必要であれば lower(A) を併用してください。
空文字 “” は 表示上「何も表示されない」 ため、列の整理に向いています。
(すみません、先ほど送信した(つもり)ものの掲載されていないようなので再度送信させていただきます。もし2重掲載となった場合はどちらか削除をお願いいたします。)