在视图中使用Order by

时间:2017-08-24 16:45:59

标签: sql sql-server

我在SQL Server中创建了一个视图,该视图正常工作并完全按照我的要求进行排序。这是视图...

CREATE VIEW [vwInventoryList]
AS

SELECT TOP 100 PERCENT x.[Cols_I_Need]

FROM dbo.vwInventoryListSummary x

GROUP BY x.[columns]
ORDER BY dbo.x.ID,dbo.x.[Description],[with_more_4_cols]
GO

问题是当我从C#或甚至在SQL Server Management Studio中执行下面的sql时,结果没有像我在视图中指定的那样排序,我不明白为什么。

Select * from vwInventoryList

我希望视图能够控制数据的排序,我的代码(select语句)应该只从视图中选择而不用在C#代码中指定顺序。

为什么会发生这种情况?

1 个答案:

答案 0 :(得分:1)

请参阅Create a view with ORDER BY clause以了解视图中的order by子句。这非常有帮助。您不必在C#代码中使用订单的一种方法是创建一个调用此视图的存储过程。在程序中你可以把sql放在

下面
SELECT * FROM [vwInventoryList] ORDER BY {Column}

它使C#代码不会被select语句变得斑点,并允许您更好地跟踪过程。最终取决于你。另请参阅What are the pros and cons to keeping SQL in Stored Procs versus Code以获取有关何时使用sql内联与存储过程的更多信息。