好比我有4个表T1,T2,T3,T。T1 T2 T3 结构是一样的。都有c1和c2列。数据假设也一样(实际上不一样的,这里为了方便描述)如下:
c1 c2
-----------------
1 data1
2 data2
3 data3 T中包含2列如下:
name type
------------
T1 x
T2 y
T3 z
------------ 那么,如何构造SQL语句,才能把这4个表的内容组合查询出来,得到如下结果:
name type c1 c2
-----------------------------
T1 x 1 data1
T1 x 2 data2
T1 x 3 data3
T2 y 1 data1
T2 y 2 data2
T2 y 3 data3
T3 z 1 data1
T3 z 2 data2
T3 z 3 data3 T1, T2, T3是动态在T中的。不是固定的。
写SQL语句之前并不知道T里有什么内容。只知道T表的名称、结构。以及T1,t2,...Tn的结构。 注明一下,不能用动态SQL语句,因为我要最终要生成视图的。
c1 c2
-----------------
1 data1
2 data2
3 data3 T中包含2列如下:
name type
------------
T1 x
T2 y
T3 z
------------ 那么,如何构造SQL语句,才能把这4个表的内容组合查询出来,得到如下结果:
name type c1 c2
-----------------------------
T1 x 1 data1
T1 x 2 data2
T1 x 3 data3
T2 y 1 data1
T2 y 2 data2
T2 y 3 data3
T3 z 1 data1
T3 z 2 data2
T3 z 3 data3 T1, T2, T3是动态在T中的。不是固定的。
写SQL语句之前并不知道T里有什么内容。只知道T表的名称、结构。以及T1,t2,...Tn的结构。 注明一下,不能用动态SQL语句,因为我要最终要生成视图的。
解决方案 »
- 关于索引影响性能的问题
- TA们说,开贴名字叫‘小女子冰天雪地跪求vb考勤管理系统源码’
- sqlserver 2008 触发器,对象名 'dbo.inserted' 无效???
- 在线求 一个SQL语句
- 跪求查找第10到20条数据的语句的错误!
- 关于高级复制技术的疑问--等待高手
- SQLServer惊天大BUG? [code=SQL] select * from table_name where col_date<='2010-6-28
- 登录问题
- 老外写的一个逻辑式,实在想不出为什么要这么用,特向各位高手求教!为什么要这么用?
- 请教高手!SQLSERVER2000里面有没有直接将数据导文本的语句或命令!
- 求教一个对同一个表既要分组也要计数的sql语句的写法?
- 一个数据库统计的
declare @s nvarchar(4000)select @s=isnull(@s+' union all ','')+'select [Name]='+quotename(Name,'''')+',[type]='+quotename(Type,'''')+',* from ' +quotename(Name)
from T exec ('create view test as '+@s+' order by Name,type')--这里改就行了。。生成test视图
AS
BEGIN
DECLARE @s VARCHAR(8000)
SELECT @s=ISNULL(@s + ' UNION ALL SELECT ','SELECT ') + 'Name=''' + Name + ''', Type=''' + type + ''',* FROM ' + Name FROM t
EXEC(@s)
END
GOCREATE VIEW myVIEW
AS
SELECT a.*
FROM OPENROWSET('MSDASQL',
'DRIVER={SQL Server};SERVER=(local);UID=sa;PWD=密码',
'EXEC 库名.dbo.myPROC') AS a
GO
SELECT * FROM myVIEW
GO
好比
select func(XXXXX) from table这样可以定义一函数func()里面可以输入表名作为参数,输出xyz之类的。