アプリケーションには、両方ともShowOrder
の列を持つ2つのテーブルがあります。アプリケーションでHibernateを使用しており、HQLを使用して、最初のテーブルと2番目のテーブルのそれぞれShowOrder
で注文された2つのテーブルを結合します。OrderByでエイリアスは無視されます
はここに私のクエリの簡易版です。一般的には
SELECT pr.Id as Id,pr.Title as Title, pr.ShowOrder as ShowOrder
FROM Process pr
INNER JOIN ProcessGroup prg ON pr.GroupId=prg.Id
ORDER BY prg.ShowOrder,pr.ShowOrder
、我々のアプリケーションは、何の問題もなく働いています。しかし、私たちには、古いアプリケーションと、そのデータベースを新しいアプリケーションデータベースに変換する変換ルーチンがあります。
古いデータベースを新しいデータベースに変換するときは、SQLサーバーが上記のクエリを実行するときにエラーが発生します。例外は言う:私たちはすべてがOKです別名なしpr.ShowOrder
を選択した場合
列がリスト
順に複数回指定されています。
選択リスト内ShowOrder
別名がある場合、SQL Serverはテーブルのエイリアスを無視し、pr.ShowOrder
とprg.ShowOrder
が同じであることを前提としているようです。
ありがとうございます。私は互換性レベルを変更し、すべてが問題ありません。 – Beatles1692