%DLIST 関数は、複数の行のテーブル列の値を %List 構造の値リストに結合します。すべての集約フィールドが評価された後に ORDER BY 節がクエリ結果セットに適用されるため、ORDER BY がこのリスト内の値の順序に直接影響することはありません。特定の状況下では、%DLIST の結果が順番に表示されることがありますが、この順番を信頼すべきではありません。特定の集約結果値内にリストされる値を、明示的に順序付けすることはできません。
setmyquery="SELECT %DLIST(FavoriteColors) AS colors FROM Sample.Person WHERE Name %STARTSWITH 'A'"settStatement=##class(%SQL.Statement).%New()settStatement.%SelectMode=1setqStatus=tStatement.%Prepare(myquery)if$$$ISERR(qStatus){write"%Prepare failed:"do$SYSTEM.Status.DisplayError(qStatus)quit}setrset=tStatement.%Execute()if(rset.%SQLCODE'=0){write"%Execute failed:",!,"SQLCODE ",rset.%SQLCODE,": ",rset.%Messagequit}whilerset.%Next(){write$LISTTOSTRING(rset.colors,"||"),!}if(rset.%SQLCODE<0){write"%Next failed:",!,"SQLCODE ",rset.%SQLCODE,": ",rset.%Messagequit}write!,"End of data"