SELECT문을 사용하여 다음과 같이 THE 및 ITEM 키워드를 모두 포함하는 스칼라 값을 리턴합니다. 예를 들면, 다음과 같습니다.
1 + THE(SELECT ITEM T.a FROM Body.Test.A[] AS T WHERE T.b = '123')
다음 예에서는 하나의 항목을 선택하고 단일 값을 작성하는 ITEM 키워드의 사용을 보여줍니다.
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 키워드가 생략된 경우 생성되는 것과 이 메시지를 비교하십시오. 여기에서 필드 목록(name-value 쌍)이 생성됩니다.
<Test> <Result> <UnitPrice>27.95</UnitPrice> </Result> <Result> <UnitPrice>42.95</UnitPrice> </Result> <Result> <UnitPrice>59.99</UnitPrice> </Result> </Test>
THE 키워드는 하나의 항목이 포함된 목록을 항목 자체로 변환합니다.
앞의 두 예에서는 모두 목록을 FROM절에 있는 SELECT의 소스로 지정했으므로(필드 참조의 끝에 []가 있어서 배열 표시), 일반적으로 SELECT는 결과 목록을 생성합니다. 이로 인해 목록을 지정 대상으로 지정해야 합니다(따라서 "Result[]"를 지정 대상으로). 그러나 종종 SELECT의 일부로 지정하는 WHERE절이 목록의 한 항목에 대해서만 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가 됨을 의미합니다("[]"는 허용되지도 않음). 그러면 다음 출력 메시지를 생성합니다.
<Test> <Result> <Publisher>Morgan Kaufmann Publishers</Publisher> <Author>Don Chamberlin</Author> </Result> </Test>