>我需要从不更改主选择的视图中获取行号,但它显示整个行号表而不是选定的行隆隆声。
以下是表 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列,而是必须在针对视图运行的每个 select 语句中编写条件的 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%';