sql - MSSQL - 视图中的 row_number() 显示意外
问题描述
我需要从不更改主选择的视图中获取行号,但它显示了所选行编号的整体行号表。
这是表 1 中的值:
field1
---------
aa
ab
ba
bb
bc
ca
cb
cc
我创建了一个这样的视图:
select field1, row_number() OVER (ORDER BY field1) as rowno
from table1
但选择显示整体行号:
select *
from myview
where field1 like 'c%'
field1 rowno
-----------------
ca 6
cb 7
cc 8
代替
field1 rowno
-----------------
ca 1
cb 2
cc 3
有机会做对吗?
解决方案
我猜你在这里没有得到行号的概念。如果每次从该视图中选择时都需要从 1 开始行号,则不应选择视图的 select 语句中已生成的 row_number 列,而是必须编写条件的 ROW_NUMBER() 部分在您针对视图运行的每个选择语句中。你需要这样的东西:
SELECT fields1, ROW_NUMBER() OVER (ORDER BY field1) as rowno
FROM <viewname>
WHERE fields1 LIKE 'C%';
推荐阅读
- tensorflow - TFCOREML 安装错误
- javascript - Apexchart 标记溢出错误
- arrays - 数组中对应值的乘法
- css - 使用css文件样式化根元素,但不工作
- dashboard - 在 python 中使用破折号的 Web 应用程序
- scala - zipwithindex 获取 Rdd Key 并获取新的 RDD
- video-streaming - 使用 GStreamer 的“观看”目录并即时解码新的媒体文件
- python - 如何使用 statsmodels ARIMA 预测下一个值?
- reactjs - React hooks linting:它总是有意义吗?
- python - Cloud DataFlowRunner 中的 python-mysql?