接上贴,建立视图已经完成。
create view v_data
as
select * from tb1
union all
select * from tb2
这是一位仁兄的方法,试验可行。
现在我需要给视图v_data增加一列,并且这列需要自动编号。
这种需求可以实现吗?
17 个解决方案
#1
row_number() over()
#2
#3
什么数据库版本先...
#4
具体怎么写呢?我是菜鸟啊。。。
#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
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
可以这样吗?
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
这个就没有必要分2层视图来实现 了
#12
是这样,列很多,都写的话麻烦。
2层视图可以实现吗?
效率是不是不好?
#13
可以,效率应该一样
#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
自己测试一下就知道了
#16
row_number() over(order by getdate())会产生一个编号
#17
用一个view 和两个view 基本效率差不多
#1
row_number() over()
#2
#3
什么数据库版本先...
#4
具体怎么写呢?我是菜鸟啊。。。
#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
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
可以这样吗?
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
这个就没有必要分2层视图来实现 了
#12
是这样,列很多,都写的话麻烦。
2层视图可以实现吗?
效率是不是不好?
#13
可以,效率应该一样
#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
自己测试一下就知道了
#16
row_number() over(order by getdate())会产生一个编号
#17
用一个view 和两个view 基本效率差不多