社区
MS-SQL Server
帖子详情
动态生成表的问题---在线等
czhenq
2004-07-08 10:49:20
我要从table1中取出一些记录,然后收成一个新表,新表以刚才选出的记录中某列的值为列名
例:
table1:
ID value
1 a
2 b
3 c
4 d
…………
选出的记录为:
1 a
2 b
3 c
4 d
那新表的列为:
a b c d
不知道说清楚了没有
我是在存储过程中使用
...全文
269
14
打赏
收藏
动态生成表的问题---在线等
我要从table1中取出一些记录,然后收成一个新表,新表以刚才选出的记录中某列的值为列名 例: table1: ID value 1 a 2 b 3 c 4 d ………… 选出的记录为: 1 a 2 b 3 c 4 d 那新表的列为: a b c d 不知道说清楚了没有 我是在存储过程中使用
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
14 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
czhenq
2004-07-08
打赏
举报
回复
toJohnShen(因果网):
字符串怎么生成???
只在sql中
JohnShen
2004-07-08
打赏
举报
回复
先产生创建表的字符串,然后用exec(字符串变量)完成创建工作
czhenq
2004-07-08
打赏
举报
回复
up
czhenq
2004-07-08
打赏
举报
回复
大小也可以统一
nvarchar(20)
czhenq
2004-07-08
打赏
举报
回复
值类型可以统一用一种 如nvarchar
zheninchangjiang
2004-07-08
打赏
举报
回复
明白,只是值的类型呢
outwindows
2004-07-08
打赏
举报
回复
楼上的方法不错...
zheninchangjiang
2004-07-08
打赏
举报
回复
declare @sql varchar(8000)
set @sql=''
select @sql=@sql+[value]+' nvarchar(20),' from table1
set @sql=substring(@sql,1,len(@sql)-1)
exec('create table newtable('+@sql+')')
outwindows
2004-07-08
打赏
举报
回复
--比较简单的例子...
create proc proc_test1 @tb_name varchar(20)
as
declare @c1 varchar(10),
@c2 varchar(10),
@c3 varchar(10),
@c4 varchar(10),
@sql varchar(200)
select @c1=a,@c2=b,@c3=c,@c4=d
from 表
where ...
set @sql = 'create table ['+@tb_name+'](['+@c1+'] varchar(20),
['+@c2+'] varchar(20),
['+@c3+'] varchar(20),
['+@c4+'] varchar(20))'
exec(@sql)
newdongkui
2004-07-08
打赏
举报
回复
--咋没人答啊,我答
declare @_itemlist varchar(8000)
set @_itemlist = 'create table ['+@_yourtablename+'] (' + char(13)
select @_itemlist = @_itemlist + '['+yourselectitemname + '] nvarchar(20) ,'+ char(13)
from yourselecttable
select @_itemlist = left( @_itemlist , len(@_itemlist )-2) + char(13)+') ON [PRIMARY]'
exec( @_itemlist )
Hanson_bati_zhu
2004-07-08
打赏
举报
回复
比如:
DECLARE @ls_NewSQL varchar(4000)
DECLARE @ls_ColName varchar(100)
SELECT @ls_NewSQL = 'CREATE TABLE '
SELECT @ls_NewSQL = @ls_NewSQL + 新表的表名 + '( '
DECLARE C_Col CURSOR FOR
SELECT 列名 FROM 存列名信息的表
OPEN C_Col
FETCH C_Col INTO @ls_ColName
WHILE @@FETCH_STATUS
BEGIN
SELECT @ls_NewSQL = @ls_NewSQL + @ls_ColName + ' nvarchar(100),'
FETCH C_Col INTO @ls_ColName
END
CLOSE C_Col
DeAllocate C_Col
SELECT @ls_NewSQL = Left(@ls_NewSQL,Len(@ls_NewSQL) - 1)
SELECT @ls_NewSQL = @ls_NewSQL + ')'
EXECUTE(@ls_NewSQL)
Hanson_bati_zhu
2004-07-08
打赏
举报
回复
一般情况下,创建表的语句不过时:
CREATE TABLE (列名 列类型,。。。。)
如果需要主键、索引,则还需要其他的SQL语句
对于楼主所需要的功能,就可以在存储过程中,建立一个游标,循环获取要创建的表的各列列名,然后和表名一起根据CREATE TABLE语句的规则拼接成一个SQL,然后调用EXECUTE方法来执行这个SQL就可以了
创建主键、索引的方法与此类似的
czhenq
2004-07-08
打赏
举报
回复
怎么没人回答???
难道是不可能实现????
czhenq
2004-07-08
打赏
举报
回复
up
1000多种java算法大全源码包
- **图**:邻接矩阵和邻接
表
表
示,用于网络路由、社交网络分析等。 2. **排序算法** - **冒泡排序**:简单直观,但效率低。 - **选择排序**:每次选取当前未排序部分的最大值或最小值。 - **插入排序**:将元素...
java数百种算法实现
- 背包
问题
:0-1背包、完全背包、多重背包等。 - 最长公共子序列(LCS)。 - 矩阵链乘法。 - 背包DP、状态DP等。 5. 分治算法: - Strassen矩阵乘法:分治策略优化矩阵乘法。 - Karatsuba乘法:高效地计算两...
微软面试100题系列之高清完整版PDF文档[带目录+标签]by_July
5. **图算法**:包括最短路径、最小
生成
树等。 - Dijkstra算法与Floyd算法的区别,Prim算法与Kruskal算法的实现细节。 #### 四、海量数据处理 随着大数据时代的到来,如何有效地处理大规模数据集成为了一个重要...
vue element-ui
动态
生成
table
表
头和数据
element-ui
动态
生成
表
头和数据; 应用场景:由于业务需要根据后台返回的数据进行
动态
的
生成
表
格(
表
头+数据); 1、template <el-table style="width: 100%" border :data="tableData"> <template v-for=...
element ui el-table
动态
生成
表
头(v-for/v-if)导致的高度塌陷(少一截)的解决办法
element ui el-table
动态
生成
表
头导致的高度塌陷(少一截)的解决办法
MS-SQL Server
34,873
社区成员
254,640
社区内容
发帖
与我相关
我的任务
MS-SQL Server
MS-SQL Server相关内容讨论专区
复制链接
扫一扫
分享
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章