是否可以使用列別名之一對PagedTable的結果進行排序?按列別名對PagedTable排序
這裏是我的工作查詢:
SELECT * FROM
(
SELECT
DI.P_ID as IDEA_ID,
DI.P_IDEA_NUMBER as IDEA_NUMBER,
CASE WHEN len(DI.P_TITLE) < 1 then 'None recorded' else DI.P_TITLE END as IDEA_TITLE,
CASE WHEN len(DI.P_IDEA_MANAGER) < 1 then 'None' ELSE isnull((Select top 1 FName+' 'LName from OTHERSERVER.OTHERDB.dbo.Usernames as UN1 where (XID=DI.P_IDEA_MANAGER) order by endDate desc),'No longer on record') end as IDEA_MANAGER,
CASE WHEN len(DI.P_RELEASE_MONTH) < 1 or len(DI.P_RELEASE_YEAR) < 1 then 'None recorded' else DI.P_RELEASE_MONTH+'/'+DI.P_RELEASE_YEAR END as IDEA_REQUESTED_RELEASE,
SIS.LABEL as IDEA_STATUS,
ROW_NUMBER() OVER(Order by DI.P_IDEA_NUMBER ASC) as RowNum
FROM
DATA_IDEA as DI
LEFT OUTER JOIN
SEL_IDEA_STATUS as SIS on SIS.ID=(SELECT TOP 1 S_ID from DATA_IDEA_STATUS as DIS where (DIS.P_ID=DI.P_ID) order by created desc)
WHERE
(SIS.IS_DRAFT='True')
)
as PagedTable where (RowNum between 1 and 10)
有了這個,我的「思想號」,這是1,2,3等 排序的結果,而不是通過「DI.P_IDEA_NUMBER排序「,是否可以通過」IDEA_NUMBER「進行排序?
你可能認爲這並不是什麼大事,按想法編號排序。那麼,我也將不得不將結果按「IDEA_MANAGER」排序。根據casemnt的情況,IDEA_MANAGER將成爲三件事之一。 1)約翰史密斯,2)沒有記錄,3)不再有記錄
您是否想對最終結果集進行排序?如果是這樣,我認爲你唯一的選擇是按別名命令排序,因爲這些將是從內部查詢傳遞給外部查詢的結果集中的列名。您是否已嘗試將ORDER BY IDEA_NUMER或ORDER BY IDEA_MANAGER添加到查詢的最後。結果是什麼? – SPKoder
@SPKoder - 不,排序最終結果集(10條記錄)不是我想要做的。 這裏的基本要點是,總的結果將是從1 - 9,999,999任何地方。我希望能夠對整個結果進行排序,然後從分頁表中返回10個結果的子集。 – user3560594