変更内容
導出表のORDER BY句の値式に選択リストに指定していない列を指定、または、問合せ式UNIONの右側の問合せ式にORDER BY句を指定しても、正常に動作します(P番号PG87767で修正されるため、これを含む緊急修正を適用していない場合に該当します)。
導出表のORDER BY句の値式に選択リストに指定していない列を指定、または、問合せ式UNIONの右側の問合せ式にORDER BY句を指定した場合、エラーが通知されます。
非互換
導出表にORDER BY句をした場合
ORDER BY句の値式に選択リストに指定していない列指定をしており、外側の問合せ指定の選択リストに"*"、"表名.*"、および"相関名.*"のいずれも指定していない場合、従来正常終了していたものが、以下のエラーメッセージが通知されるようになります。
“JYP7206E ORDER BY句に指定された列“@1@”が問合せ式の結果中には存在しません.”
非互換が発生するSQL文の例を以下に示します。
SELECT C1 FROM (SELECT C1 FROM S1.T1 ORDER BY C2) AS T1
問合せ式UNIONの右側の問合せ式にORDER BY句を指定した場合
従来正常終了していたものが、以下のエラーメッセージが通知されるようになります。
“JYP8719E 問合せ指定または単一行SELECT文にORDER BY句が指定されました.”
非互換が発生するSQL文の例を以下に示します。
SELECT C11 FROM S1.T1 UNION (SELECT C21 FROM S1.T2 ORDER BY C21)
対処方法
導出表にORDER BY句を指定する場合
ORDER BY句の値式には選択リストに指定した列を指定してください。
問合せ式UNIONの右側の問合せ式にORDER BY句を指定する場合
対処方法はないため、ORDER BY句を指定しないでください。