クエリコマンドの記述方法について

フォーラム TuneBrowser クエリコマンドの記述方法について

  • このトピックには1件の返信、2人の参加者があり、最後にTikiにより2時間、 50分前に更新されました。
2件の投稿を表示中 - 1 - 2件目 (全2件中)
  • 投稿者
    投稿
  • #17394
    Tamageta88
    参加者

    お忙しいところ失礼いたします。
    「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重掲載となった場合はどちらか削除をお願いいたします。)

    #17395
    Tiki
    キーマスター

    こんにちは。

    こちらのコメントはテキストエディタでの編集をサポートのご報告をして、その後とくにコメントがなかったので、クローズさせていただきました。

    https://tunebrowser.tikisoft.net/forums/reply/15813/

    現在のところ、クエリの表示用にこれ以上複雑な条件判定を行う処理を追加することは考えていないのですが、どのような使い方を想定されているのでしょうか。

2件の投稿を表示中 - 1 - 2件目 (全2件中)
  • このトピックに返信するにはログインが必要です。