SELECT ステートメントを使用して、THE と ITEM キーワードの両方を組み込むことによって、スカラー値を戻します。例えば、
1 + THE(SELECT ITEM T.a FROM Body.Test.A[] AS T WHERE T.b = '123')
以下の例は、ITEM キーワードの使用を示しています。このキーワードは、1 つの項目を選択して、単一の値を作成します。
SET OutputRoot.MQMD = InputRoot.MQMD; SET OutputRoot.XML.Test.Result[] = (SELECT ITEM T.UnitPrice FROM InputBody.Invoice.Purchases.Item[] AS T);
Invoice メッセージを入力として受け取る場合、ESQL は次の出力メッセージを生成します。
<Test> <Result>27.95</Result> <Result>42.95</Result> <Result>59.99</Result> </Test>
ITEM キーワードが指定された場合、出力メッセージにはスカラー値のリストが含まれます。このメッセージを、ITEM キーワードを省略した場合に生成されるメッセージと比較してみましょう。フィールドのリスト (名前と値のペア) が生成されます。
<Test> <Result> <UnitPrice>27.95</UnitPrice> </Result> <Result> <UnitPrice>42.95</UnitPrice> </Result> <Result> <UnitPrice>59.99</UnitPrice> </Result> </Test>
THE キーワードは、1 つの項目を含むリストを、項目自体に変換します。
前の 2 つの例は両方とも、リストを FROM 文節の SELECT のソースとして指定したため (配列を示すためにフィールド参照の最後に [] がある)、通常、SELECT は結果のリストを生成します。このため、リストを代入先として指定する必要があります (つまり、代入先として "Result[]" を指定します)。しかし、大抵の場合、SELECT の一部として指定する WHERE 文節は、リスト内の 1 つの項目に対してのみ TRUE を戻すことが分かります。この場合、THE キーワードを使用します。
以下の例は、THE キーワードを使用した効果を示しています。
SET OutputRoot.MQMD = InputRoot.MQMD; SET OutputRoot.XML.Test.Result = THE (SELECT T.Publisher, T.Author FROM InputBody.Invoice.Purchases.Item[] AS T WHERE T.UnitPrice = 42.95);
THE キーワードは、代入先が OutputRoot.XML.Test.Result になることを意味します。("[]" は許可されません。) THE キーワードを使用すると次の出力メッセージが生成されます。
<Test> <Result> <Publisher>Morgan Kaufmann Publishers</Publisher> <Author>Don Chamberlin</Author> </Result> </Test>