簡體   English   中英

MSSQL-視圖中的row_number()顯示意外

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM