『求助』建立视图的时候,如何增加一列自动编号列

时间:2021-10-12 06:02:18
http://topic.csdn.net/u/20110228/11/62f6ece3-b95a-446b-824e-861d881b1498.html
接上贴,建立视图已经完成。
create view v_data
as
select * from tb1
union all
select * from tb2

这是一位仁兄的方法,试验可行。

现在我需要给视图v_data增加一列,并且这列需要自动编号。

这种需求可以实现吗?

17 个解决方案

#1


row_number() over()

#2


该回复于2011-03-01 16:16:04被版主删除

#3


什么数据库版本先...

#4


引用 1 楼 coleling 的回复:
row_number() over()

具体怎么写呢?我是菜鸟啊。。。

#5


数据库版本是,SQL Express2005。

#6


row_number() over()

#7


create view v_data
as

select row_number() over(order by xxx) as id,*
from (
select * from tb1
union all
select * from tb2
)T

#8


引用 7 楼 rucypli 的回复:
SQL code
create view v_data
as

select row_number() over(order by xxx) as id,*
from (
select * from tb1
union all
select * from tb2
)T


UP!

#9


create view v_data
as

select row_number() over(order by getdate()) as num,*
from (
select * from tb1
union all
select * from tb2
)T

#10


引用 7 楼 rucypli 的回复:
SQL code
create view v_data
as

select row_number() over(order by xxx) as id,*
from (
select * from tb1
union all
select * from tb2
)T


可以这样吗?
create view v_data
as
select * from tb1
union all
select * from tb2

CREATE view v_data_ex
as
select row_number(),v_data.*
from v_data

#11


引用 10 楼 xyzhaopeng 的回复:
引用 7 楼 rucypli 的回复:

SQL code
create view v_data
as

select row_number() over(order by xxx) as id,*
from (
select * from tb1
union all
select * from tb2
)T


可以这样吗?

SQL code
create v……

这个就没有必要分2层视图来实现 了

#12


引用 11 楼 xiao_ai_mei 的回复:
这个就没有必要分2层视图来实现 了

是这样,列很多,都写的话麻烦。
2层视图可以实现吗?

效率是不是不好?

#13


引用 12 楼 xyzhaopeng 的回复:
引用 11 楼 xiao_ai_mei 的回复:

这个就没有必要分2层视图来实现 了

是这样,列很多,都写的话麻烦。
2层视图可以实现吗?

效率是不是不好?

可以,效率应该一样

#14


效率一样. 
create view v_data
as
select * from tb1
union all
select * from tb2
GO

CREATE view v_data_ex
as
select RowNo = row_number() over(order by getdate()), a.*
from v_data a
GO

#15


引用 12 楼 xyzhaopeng 的回复:
引用 11 楼 xiao_ai_mei 的回复:

这个就没有必要分2层视图来实现 了

是这样,列很多,都写的话麻烦。
2层视图可以实现吗?

效率是不是不好?

自己测试一下就知道了

#16


引用 9 楼 xys_777 的回复:
SQL code
create view v_data
as

select row_number() over(order by getdate()) as num,*
from (
select * from tb1
union all
select * from tb2
)T
row_number() over(order by getdate())会产生一个编号

#17


 用一个view 和两个view 基本效率差不多

#1


row_number() over()

#2


该回复于2011-03-01 16:16:04被版主删除

#3


什么数据库版本先...

#4


引用 1 楼 coleling 的回复:
row_number() over()

具体怎么写呢?我是菜鸟啊。。。

#5


数据库版本是,SQL Express2005。

#6


row_number() over()

#7


create view v_data
as

select row_number() over(order by xxx) as id,*
from (
select * from tb1
union all
select * from tb2
)T

#8


引用 7 楼 rucypli 的回复:
SQL code
create view v_data
as

select row_number() over(order by xxx) as id,*
from (
select * from tb1
union all
select * from tb2
)T


UP!

#9


create view v_data
as

select row_number() over(order by getdate()) as num,*
from (
select * from tb1
union all
select * from tb2
)T

#10


引用 7 楼 rucypli 的回复:
SQL code
create view v_data
as

select row_number() over(order by xxx) as id,*
from (
select * from tb1
union all
select * from tb2
)T


可以这样吗?
create view v_data
as
select * from tb1
union all
select * from tb2

CREATE view v_data_ex
as
select row_number(),v_data.*
from v_data

#11


引用 10 楼 xyzhaopeng 的回复:
引用 7 楼 rucypli 的回复:

SQL code
create view v_data
as

select row_number() over(order by xxx) as id,*
from (
select * from tb1
union all
select * from tb2
)T


可以这样吗?

SQL code
create v……

这个就没有必要分2层视图来实现 了

#12


引用 11 楼 xiao_ai_mei 的回复:
这个就没有必要分2层视图来实现 了

是这样,列很多,都写的话麻烦。
2层视图可以实现吗?

效率是不是不好?

#13


引用 12 楼 xyzhaopeng 的回复:
引用 11 楼 xiao_ai_mei 的回复:

这个就没有必要分2层视图来实现 了

是这样,列很多,都写的话麻烦。
2层视图可以实现吗?

效率是不是不好?

可以,效率应该一样

#14


效率一样. 
create view v_data
as
select * from tb1
union all
select * from tb2
GO

CREATE view v_data_ex
as
select RowNo = row_number() over(order by getdate()), a.*
from v_data a
GO

#15


引用 12 楼 xyzhaopeng 的回复:
引用 11 楼 xiao_ai_mei 的回复:

这个就没有必要分2层视图来实现 了

是这样,列很多,都写的话麻烦。
2层视图可以实现吗?

效率是不是不好?

自己测试一下就知道了

#16


引用 9 楼 xys_777 的回复:
SQL code
create view v_data
as

select row_number() over(order by getdate()) as num,*
from (
select * from tb1
union all
select * from tb2
)T
row_number() over(order by getdate())会产生一个编号

#17


 用一个view 和两个view 基本效率差不多