0

の使い方に戸惑いますalias。たとえば、次のクエリは正常に機能します

select * from 
(
select ROW_NUMBER() over (partition by prodid order by quantity desc) as 'rankin',prodid,quantity from sales
) A
where rankin=1

しかし、以下のスニペットに示すように変更すると、「無効な列名 'rownumber'」というエラーが表示されます。

select ROW_NUMBER() over (order by quantity) as 'rownumber' from sales
where rownumber = 1

違いを説明してください。

4

1 に答える 1

0

これは、が のSELECT後に実行されWHEREFROMが の前に実行されるWHEREため、2 番目のクエリでは使用できませんが、最初のクエリでは使用できるためです。

于 2013-08-12T23:46:24.023 に答える