如何用动态SQL返回临时表的组合查询数据
2010-01-24 17:41
507 查看
Createtable#table(numint,name1nvarchar(10),name2nvarchar(10))
Createtable#table1(numint,name1nvarchar(10))
insertinto#table1
select1,'a'unionallselect2,'b'
Createtable#table2(num1int,name2nvarchar(10))
insertinto#table2
select1,'aa'unionAllselect2,'bb'
declare@sqlstrnvarchar(1000)
--
set@sqlstr='selecta.*,b.name2from#table1asainnerjoin#table2asbona.num=b.num1'
insertinto#table
exec(@sqlstr)
select*from#table
droptable#table1
droptable#table2
droptable#table
按上面的这个方法,如果现在有这样的一种情况:
1.数据由多个临时表按组合查询,要形成一个大表,并且,大表里的数据比如主键,是不能重复的。
2.临时表的列字段不是固定的,有可能随机产生。
解决方法:
1.用@sql动态创建一个新的大表,里面包含了要产生的动态列字段。
2.用动态sql组合查询语法。
3.用exec执行查询语法,把结果集装到大表里。
相关文章推荐
- 巧用SQL的with语法生成临时结果集,进行查询与更新同步操作,解决高并发下对数据的重复访问
- 在Django里查询数据库时,如何按照desc倒序返回数据?
- 基于Spring Boot,使用JPA动态调用Sql查询数据
- DB2存储过程实现查询表数据,生成动态SQL,并执行
- 统计:后台通过查询数据表(该表存放统计的sql语句)返回规定格式的json数据
- 如何在PL/SQL Developer中设置使其可以显示查询返回的所有记录?
- 查询oracle数据库,返回的数据是乱码。 PL/SQL正常。
- 如何用SQL语句查询Excel数据?
- (求助)如何利用PB 动态查询MSSQL数据库
- sql语句如何在insert一条数据后直接返回刚刚插入的数据的ID
- sql中如何调用另一台服务器的数据库查询数据呢?
- SQL语句:orac 3ff0 le中如何插入Date类型的数据和根据Date数据进行查询的方法
- 和SQL内连接不同,SQL外连接返回到查询结果集合中的不仅包含符合连接条件的行,而且还包括左表(左外连接时)、右表(右外连接时)或两个边接表(全外连接)中的所有数据行,下面就为您详细介绍SQL外连接,
- SQL存储过程动态查询数据区间
- 表中查询重复的数据,如何通过sql语句查询?
- 如何用sql语句查询和删除表中重复数据
- hibernate中的query查询原生sql语句,如何获得返回记录中的每一个字段的值
- SQL如何查询两者之间的数据..
- SQL 大数据查询如何进行优化?
- SQL查询遍历数据方法一 [ 临时表 + While循环]