man*_*ddy 7 sql t-sql sql-server-2008
我在报告中要求在行中显示备用颜色,为此我需要在SQL Select语句中生成序列号(请参阅下面的示例),以便稍后在显示行时使用.我正在尝试row_number和其他一些不起作用的技术.这不应该使用脚本完成,我应该能够在Select语句中生成.感谢任何帮助.
RowNumber - 1, Otherdata - Something1
RowNumber - 2, Otherdata - Something2
RowNumber - 3, Otherdata - Something3
RowNumber - 4, Otherdata - Something4
RowNumber - 5, Otherdata - Something5
Run Code Online (Sandbox Code Playgroud)
Waq*_*qar 10
如果您的数据库支持分析函数,则无需避免使用分析函数,例如ROW_NUMBER()
SELECT
ROW_NUMBER() OVER (ORDER BY [<PRIMARYKEY_COLUMN_NAME>]) AS Number
FROM
[<TABLE_NAME>]
Run Code Online (Sandbox Code Playgroud)
语法是Func([ arguments ]) OVER (analytic_clause)
你需要关注OVER().最后一个括号创建行的分区,并逐个在这些分区上应用Func().在上面的代码中,我们只有一组行/分区.因此,生成的序列适用于所有行.
您可以制作多组数据,并在一次运行中为每个数据生成序列号.例如,如果您需要为具有相同categoryId的所有行集生成序列号.你只需要添加这样的Partition By
子句(PARTITION BY categoryId ORDER BY [<PRIMARYKEY_COLUMN_NAME>])
.
请记住,在FROM
您还可以使用其他额外内容ORDER BY
对数据进行不同的排序之后.但它对OVER()没有影响
归档时间: |
|
查看次数: |
22498 次 |
最近记录: |