0

名前で注文したいのですが、作成者を最初にリストする必要があるため、以下に記述してエラーが発生しました

最初の ORDER BY 用語が結果セットのどの列とも一致しません

作成者が最初の結果になるようにするにはどうすればよいですか? なぜこのエラーが発生するのかわかりません。私のクエリは

select u.id as id, u.name as name, 0 as creator from User u 
join Moderator m on m.forumID=@forumID and m.userID=u.id 
union 
select u.id, u.name, f.creator as creator from User u 
join Forum f on f.id=@forumID and u.id=w.creator 
order by creator<>0, u.name
4

2 に答える 2

3

、およびステートメントでエイリアス名creatorを使用することはできません。WHEREJOINORDER BY

あなたの場合は列数を使用してください:

SELECT ....
ORDER BY 3, 2

これは良い習慣ではありませんが、あなたの質問ではうまくいきます...

于 2013-08-24T20:34:30.460 に答える