簡體   English   中英

按列別名運行順序

[英]Running Order by on column alias

我試圖在Northwind數據庫上運行以下SQL查詢:

SELECT * FROM (
    SELECT DISTINCT ROW_NUMBER() OVER (ORDER BY Joinning DESC) rownum,
    LastName, Country, HireDate AS Joinning
   FROM  Employees
   WHERE  Region IS NOT NULL
   ) r

這給了我錯誤:

Invalid column name 'Joinning'.

分頁需要“行號”。

有人可以建議我如何根據生成的行號對Joining別名進行排序嗎?

-可能的解決方法

只是想出一個解決辦法; 請提出任何錯誤或需要更改的建議:

SELECT ROW_NUMBER() OVER (ORDER BY Joinning DESC) rownum,* FROM (
    SELECT  
    LastName, Country, HireDate AS Joinning

   FROM  Employees
   WHERE  Region IS NOT NULL
   ) r

-在行號上進一步放置where子句(我想為分頁做些什么):

With myres as(
   SELECT ROW_NUMBER() OVER (ORDER BY Joinning DESC) rownum,* FROM (
    SELECT  
       LastName, Country, HireDate AS Joinning
       FROM  Employees
       WHERE  Region IS NOT NULL
     ) a
) Select * from myres where myres.rownum > 0 and myres.rownum < = 0+20

嘗試

SELECT * FROM (
SELECT DISTINCT ROW_NUMBER() OVER (ORDER BY HireDate DESC) rownum,
LastName, Country, HireDate AS Joinning
FROM  Employees
WHERE  Region IS NOT NULL
) r

希望你能加入你的餐桌。 通常在查詢的最后給出order by子句,如下所示:

SELECT * FROM(SELECT DISTINCT ROW_NUMBER()rownum,LastName,Country,HireDate AS Joining)從員工所在區域不為空的ORDER BY BY DESC

希望這對您有所幫助!

使用該字段的原始名稱,將可以正常使用 HireDate

SELECT * FROM (
    SELECT DISTINCT ROW_NUMBER() OVER (ORDER BY HireDate DESC) rownum,
    LastName, Country, HireDate AS Joinning
   FROM  Employees
   WHERE  Region IS NOT NULL
   ) r

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM