[英]MSSQL - row_number() in views display unexpected
我需要從不更改主選擇的視圖中獲取行號,但它顯示的是插入所選行的整個行號表。
這是表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%';
然后您需要subquery
:
select t.*
from (select field1, row_number() over (order by field1) as rowno
from table1
) t
where field1 like 'c%';
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.