73268

[code]

        sectionQuery
            .append("SELECT a.classNo").append(multiLang ? ", b.classNo target_lang_no" : "")
            .append(" FROM ").append(getSTName(SorL, "goods")).append(" a ");
    
[/code]

Javaの構文をなくして、sqlのみでみているのですが、？の意味など下記がどのようなクエリなのかわかりません。  
下記はsql以外にもほかの言語が入っていますでしょうか？

SELECT a.classNo multiLang ? , b.classNo target_lang_no : ""  
FROM getSTName(SorL, "goods") a；

上記のクエリの処理内容を知りたいです。


CC BY-SA 4.0
2021-01-13T09:16:06.457
73265
2021-01-13T10:28:06.040
32774
question
java sql
sql文が理解できない


文中の以下の部分はJavaの3項演算子による計算を行っているので、変数`multiLang`が`true`か`false`で内容が変化します。

[code]

    multiLang ? ", b.classNo target_lang_no" : ""
    
[/code]

  * `true`の場合:

`, b.classNo target_lang_no`になる

  * `false`の場合:

空文字になる

また、`getTSName(SorL,
"goods")`の箇所はJavaのメソッド呼び出しと思います。(具体的処理は質問文からは想定できませんが、テーブル名を取得するメソッドではないかと思います)

ですので、生成されるSQL文は次のいずれかのパターンになると思います。

  * `SELECT SELECT a.classNo, b.classNo target_lang_no FROM (テーブル名) a`
  * `SELECT SELECT a.classNo FROM (テーブル名) a`

＃前者のパターンの場合、テーブル`b`が足らないので、`getTSName`メソッドは複数のテーブル名を取得するメソッド化も知れません。


CC BY-SA 4.0
2021-01-13T10:28:06.040
73268
2021-01-13T10:28:06.040
20098
73265
answer