Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/384.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/sql-server-2008/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何在子查询中添加排序依据或排序?_Java_Sql Server 2008 - Fatal编程技术网

Java 如何在子查询中添加排序依据或排序?

Java 如何在子查询中添加排序依据或排序?,java,sql-server-2008,Java,Sql Server 2008,这是一个甚至包含分页的查询,我需要按照我指定的特定列进行排序 DECLARE @RowsPerPage INT = 100, @PageNumber INT =1 SELECT DISTINCT * FROM (SELECT DISTINCT a.*,b.WorkflowId bWorkflowId,b.TRF_CompanyCoverage, b.TRF_OrgID,b.TRF_Fundb_RepoNumber,b.TRF_WSC_PPI,b.TRF_BucketID,b.TRF_GAAP

这是一个甚至包含分页的查询,我需要按照我指定的特定列进行排序

DECLARE @RowsPerPage INT = 100, @PageNumber INT =1 
SELECT DISTINCT * FROM 
(SELECT DISTINCT a.*,b.WorkflowId bWorkflowId,b.TRF_CompanyCoverage,
b.TRF_OrgID,b.TRF_Fundb_RepoNumber,b.TRF_WSC_PPI,b.TRF_BucketID,b.TRF_GAAPCode,b
.TRF_MarketCapUSD,b.TRF_OrgName,b.TRF_AutomationFlag,b.TRF_SmartPriority,b.TRF_I
ndustryName,b.TRF_ExchangeCountryCode,b.TRF_ExchangeCountryName,b.TRF_UserGroup,
Tasks.TaskId,Tasks.WorkflowId cworkFlowId,Tasks.TRFTaskId,Tasks.TaskName,
ROW_NUMBER() OVER (ORDER BY Tasks.WorkflowID) AS RowNum 
FROM  CCC_Filling_Metadata a,Fundamentals_Metadata b,Tasks 
WHERE a.WorkflowID=b.WorkflowID AND b.WorkflowID=Tasks.WorkflowID AND
Tasks.CreateDateTime >= '2015-01-01' 
AND  Tasks.CreateDateTime <= '2015-12-01' AND Tasks.Owner =  '0326271' AND 
Tasks.TaskStatus = 'open') AS SOD
WHERE SOD.RowNum BETWEEN ((@PageNumber-1)*@RowsPerPage)+1
AND @RowsPerPage*(@PageNumber) 
order by Tasks.TargetDate, Tasks.SmartPriority, Fundamentals_Metadata.TRF_MarketCapUSD desc
请帮助我了解如何在此查询中使用“Order by…”。

您的外部查询是:

选择DISTINCT*
从(…)到SOD
其中SOD.RowNum介于((@PageNumber-1)*@RowsPerPage)+1和@RowsPerPage*(@PageNumber)之间
按Tasks.TargetDate、Tasks.SmartPriority、Fundamentals\u Metadata.TRF\u MarketCapUSD desc排序
因此,
任务
基础知识\u元数据
是未知的限定符。删除它们,因为您只有一个名为
SOD
的“视图”,所以不需要限定


当然,您需要将
Tasks.TargetDate
Tasks.SmartPriority
添加到内部查询中,以便对它们进行排序。

Msg 1033,级别15,状态1,第15行ORDER BY子句在视图、内联函数、派生表、子查询和公共表表达式中无效,除非还指定了TOP或FOR XML。当我被添加到课程的内部查询中时,会出现此错误。正如错误所说,您不能在内部查询中指定orderby,我没有告诉您这样做。我告诉过您从ORDERBY子句中删除限定符,并将缺少的列添加到内部查询的SELECT子句“以便它们可用于排序”。
Msg 4104, Level 16, State 1, Line 17
The multi-part identifier "Tasks.TargetDate" could not be bound.
Msg 4104, Level 16, State 1, Line 17
The multi-part identifier "Tasks.SmartPriority" could not be bound.
Msg 4104, Level 16, State 1, Line 17
The multi-part identifier "Fundamentals_Metadata.TRF_MarketCapUSD" could not be bound.
Msg 145, Level 15, State 1, Line 2
ORDER BY items must appear in the select list if SELECT DISTINCT is specified.