Sql 需要帮助创建视图吗

Sql 需要帮助创建视图吗,sql,sql-server,tsql,Sql,Sql Server,Tsql,我得到一个错误: ORDER BY子句在视图、内联函数、派生表、子查询和公共表表达式中无效,除非还指定了TOP、OFFSET或FOR XML 如何解决此问题?这里的解决方案是从查询中删除orderby子句。如果要按name的特定顺序显示结果,可以在从视图中选择数据时执行此操作。这里的解决方案是从查询中删除order by子句。如果您想按name的特定顺序显示结果,您可以在从视图中选择数据时执行此操作。有一种方法可以做到这一点,但您可能应该按照建议在视图中进行排序。 不过,要破解它,您可以在SEL

我得到一个错误:

ORDER BY子句在视图、内联函数、派生表、子查询和公共表表达式中无效,除非还指定了TOP、OFFSET或FOR XML


如何解决此问题?

这里的解决方案是从查询中删除
orderby
子句。如果要按
name
的特定顺序显示结果,可以在从视图中选择数据时执行此操作。

这里的解决方案是从查询中删除
order by
子句。如果您想按
name
的特定顺序显示结果,您可以在从视图中选择数据时执行此操作。

有一种方法可以做到这一点,但您可能应该按照建议在视图中进行排序。 不过,要破解它,您可以在SELECT语句中使用TOP 100%

CREATE VIEW custowner
AS
   (SELECT        
        RTRIM(p.FirstName)+ ' ' + p.LastName AS [name], 
        LEFT(p.Phone, 12) AS phone, 
        p.CellPhone AS cellphone, 
        LEFT(p.EMail, 22) AS email
    FROM  
        CUSTOMER_OWNER co 
    INNER JOIN 
        PEOPLE p ON co.PeopleID = p.PeopleId
    ORDER BY 
        name ASC);

它现在应该可以工作了,有一种方法可以做到,但您可能应该按照建议在视图上订购它。 不过,要破解它,您可以在SELECT语句中使用TOP 100%

CREATE VIEW custowner
AS
   (SELECT        
        RTRIM(p.FirstName)+ ' ' + p.LastName AS [name], 
        LEFT(p.Phone, 12) AS phone, 
        p.CellPhone AS cellphone, 
        LEFT(p.EMail, 22) AS email
    FROM  
        CUSTOMER_OWNER co 
    INNER JOIN 
        PEOPLE p ON co.PeopleID = p.PeopleId
    ORDER BY 
        name ASC);

它现在应该可以工作了

从错误中,我猜您使用的是Microsoft SQL Server而不是MySQL。请相应地更改标记,我喜欢错误告诉您错误所在,而您不尝试更改。如果列中不包含PeopleID,您将如何使用该视图?您还应该为视图采用命名约定,以便知道它是一个视图,例如,
create view custowner\u v
@Used\u By\u已经很好地说明了这一点。从错误中,我猜测您使用的是Microsoft SQL Server,而不是MySQL。请相应地更改标记,我喜欢错误告诉您错误所在,而您不尝试更改。如果列中不包含PeopleID,您将如何使用该视图?您还应该为视图采用命名约定,以便知道它是一个视图,例如,
create view custowner\u v
@Used\u By\u已经很好地说明了这一点。谢谢@Harshil,我忘了您不能在create view语句中使用order By子句谢谢@Harshil,我忘了您不能在create view语句中使用order By子句