尝试使用示例数据库创建视图但似乎无法获取它

Trying to make a view with a sample database and cannot seem to get it

我正在尝试为具有升序英文描述的产品创建视图。也将其命名为 LastName_vProductLinesUSA.

以下是数据库的一些截图:

  1. Database overview
  2. SalesLT.vProductandDescription

  3. SalesLT.Product

  4. SalesLT.ProductDescription

我试过使用查询:

CREATE VIEW LastName_vProductLinesUSA 
AS 
    SELECT 
        [ProductID], [Name], [ProductModel], [Description] 
    FROM 
        [SalesLT.vProductAndDescription] 
    ORDER BY
        [Description];

但是当我尝试执行查询时出现此错误:

Msg 1033, Level 15, State 1, Procedure LastName_vProductLinesUSA, Line 4 [Batch Start Line 0]
The ORDER BY clause is invalid in views, inline functions, derived tables, subqueries, and common table expressions, unless TOP, OFFSET or FOR XML is also specified.

从视图中删除 ORDER BY:

CREATE VIEW LastName_vProductLinesUSA 
AS SELECT [ ProductID ], [ Name ], [ ProductModel ], [ Description ] 
FROM [ SalesLT.vProductAndDescription ] 
ORDER BY [ Description ] ; <--- remove this

没有它:

CREATE VIEW LastName_vProductLinesUSA 
AS SELECT [ ProductID ], [ Name ], [ ProductModel ], [ Description ] 
FROM [ SalesLT.vProductAndDescription ] 

如果您想要对结果进行排序,请在 select 从视图中进行排序:

SELECT * FROM LastName_vProductLinesUSA
ORDER BY [ Description ] ;

旁注,关于风格;方括号相当丑陋。如果你试图通过用空格包围它们来使它们更漂亮,请考虑删除方括号(并努力不使用标识符的保留字,这样你就可以继续避免使用 [ ])

如果需要有序视图,则必须使用 Top 100 percent

CREATE VIEW LastName_vProductLinesUSA 
AS SELECT TOP 100 PERCENT [ ProductID ], [ Name ], [ ProductModel ], [ Description ] 
FROM [ SalesLT.vProductAndDescription ] 
ORDER BY [ Description ] ;