row_number()函数

时间:2017-11-24 16:10:33

标签: sql sql-server tsql

如何在视图中使用row_number功能?

我这样用:

SELECT 
    ROW_NUMBER() OVER (ORDER BY name ASC), 
    name, family, mobile, tell
FROM  
    dbo.customer

但是SQL Server会抛出此错误:

  

无法在网格窗格和图表窗格中表示SQL文本。

3 个答案:

答案 0 :(得分:1)

错误是:" SQL文本无法在网格窗格和图表窗格中表示"

嗯,查询设计师不支持row_number。在普通的SQL查询编辑器中尝试查询。 query designer几乎没用,因为它仍然有bug并且缺少很多东西(比如这个)。

您还应该给它起一个名字:

SELECT ColName = row_number()over(order by name asc), name, family, mobile, tell
FROM  dbo.customer

答案 1 :(得分:0)

您可以在视图中使用row_number(),但您需要在视图中为其指定名称:

SELECT row_number() over (order by name asc) as seqnum,
       name, family, mobile, tell
FROM dbo.customer;

答案 2 :(得分:0)

问题在于您的专栏[name],而且是数据类型text。自2000/2005年以来,该特定数据类型已被弃用。

如果您需要对[name]列进行排序操作,则需要使用不同的数据类型。您应该使用(n)varchar(MAX)