【发布时间】:2014-01-12 05:02:54
【问题描述】:
我收到此错误:
ORDER BY 子句在视图、内联函数、派生表、子查询和公用表表达式中无效,除非还指定了 TOP 或 FOR XML。
在下面的代码中,尝试从视图中订购时。我该如何解决这个问题?
USE [MYDB]
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER VIEW [dbo].[vw_FCoord]
AS
SELECT FeatId, ISNULL(MLNumber, '') AS MLNumber,
(SELECT Text
FROM dbo.tblFType AS ft
WHERE (FTypeId = dbo.tblFeat.FTypeId)) AS FType, Height, Width, Depth, ISNULL(Description, '') AS Description,
Latitude, Longitude * - 1 AS Longitude, IsSubsidence, ISNULL(ProjectName, '')
AS ProjectName, ISNULL
((SELECT Text
FROM dbo.tblFStatusType AS fst
WHERE (FStatusTypeId = dbo.tblFeat.FStatusTypeId)), 'Not Set') AS FStatus, ISNULL
((SELECT Text
FROM dbo.tblSGType AS st
WHERE (SGTypeId = dbo.tblFeat.SGTypeId)), 'Not Set') AS SGType, SGIsBackfillMaterial, SGDate,
ISNULL(SGDetails, '') AS SGDetails, SGCost, SGIsBatCompatible,
(Select COUNT(*) from tblProjectFeat pf where pf.FeatId=dbo.tblFeat.FeatId) NumProjects
FROM dbo.tblFeat
WHERE (Latitude > 0) AND (Longitude > 0)
order by NumProjects asc
GO
【问题讨论】:
-
您无法对数据进行有序视图,您能做的最好的事情就是从您的视图中选择,然后对数据进行排序。