sql将查询出来的一列的值用作标题 20
列下面的值还要对应显示比如说:正常查询出的值应该是标题1标题2一1二2我想要的结果是一二12不知道可不可以,谢谢...
列下面的值还要对应显示
比如说:正常查询出的值应该是
标题1 标题2
一 1
二 2
我想要的结果是
一 二
1 2
不知道可不可以,谢谢 展开
比如说:正常查询出的值应该是
标题1 标题2
一 1
二 2
我想要的结果是
一 二
1 2
不知道可不可以,谢谢 展开
展开全部
/*
标题:通过查询结果建表
作者:yangzell
时间:2008-05-08
地点:四川成都
说明:通过查询返回的一列值建表,环境sql server 2000
*/
------------------------
--环境建立:暂时省略
-------------------------------------
--清理掉表,tablename是将要创建的表名
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[tablename]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
drop table [dbo].[tablename]
GO
-------------------------------------
declare @mysql varchar(1000) --建表的SQL字符串
declare @clm_name varchar(100) --列名
--定义游标
DECLARE test_cursor CURSOR FOR
SELECT ltrim(rtrim(clmname)) FROM table2 --table2是你查询的表名,clmname是你查询的列名
where clmname is not null --查询的条件
group by clmname --过滤重复的结果
order by clmname
OPEN test_cursor
-- 获得首条记录
if @@CURSOR_ROWS=0
select '没有查询结果 无法建立表'
else
-- 生成建表字符串
begin
set @mysql ='create table tablename ('
fetch next from test_cursor into @clm_name
set @mysql=@mysql + '[' + @clm_name + '] varchar(50)'
if @@fetch_status=0
begin
fetch next from test_cursor into @clm_name
-- .
WHILE @@FETCH_STATUS = 0
BEGIN
-- This is executed as long as the previous fetch succeeds.
set @mysql=@mysql +',['+ @clm_name +'] varchar(50)'
FETCH NEXT FROM test_cursor into @clm_name
END
set @mysql=@mysql +')'
end
print @mysql --显示建表SQL语句
EXECUTE (@mysql)
select * from tablename --查看新建立的表
end
CLOSE test_cursor
DEALLOCATE test_cursor
GO
====================
列下面的值还要对应显示是什么意思,你干脆给数据示例吧
标题:通过查询结果建表
作者:yangzell
时间:2008-05-08
地点:四川成都
说明:通过查询返回的一列值建表,环境sql server 2000
*/
------------------------
--环境建立:暂时省略
-------------------------------------
--清理掉表,tablename是将要创建的表名
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[tablename]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
drop table [dbo].[tablename]
GO
-------------------------------------
declare @mysql varchar(1000) --建表的SQL字符串
declare @clm_name varchar(100) --列名
--定义游标
DECLARE test_cursor CURSOR FOR
SELECT ltrim(rtrim(clmname)) FROM table2 --table2是你查询的表名,clmname是你查询的列名
where clmname is not null --查询的条件
group by clmname --过滤重复的结果
order by clmname
OPEN test_cursor
-- 获得首条记录
if @@CURSOR_ROWS=0
select '没有查询结果 无法建立表'
else
-- 生成建表字符串
begin
set @mysql ='create table tablename ('
fetch next from test_cursor into @clm_name
set @mysql=@mysql + '[' + @clm_name + '] varchar(50)'
if @@fetch_status=0
begin
fetch next from test_cursor into @clm_name
-- .
WHILE @@FETCH_STATUS = 0
BEGIN
-- This is executed as long as the previous fetch succeeds.
set @mysql=@mysql +',['+ @clm_name +'] varchar(50)'
FETCH NEXT FROM test_cursor into @clm_name
END
set @mysql=@mysql +')'
end
print @mysql --显示建表SQL语句
EXECUTE (@mysql)
select * from tablename --查看新建立的表
end
CLOSE test_cursor
DEALLOCATE test_cursor
GO
====================
列下面的值还要对应显示是什么意思,你干脆给数据示例吧
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询