在select语句查询时重命名列名

xingeddx 2014-12-26 03:29:00
目标 是创建临时表,通过以下方法 :

exec sp_executesql 'select * into #tb from table1,table2'

但是在执行时提示错误,说是有重复列,原来table1 table2中都有名为ID的列,我现在想在select查询时修改列名,不让有重复,不知道怎么做,请高手支招。。。
...全文
2789 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
yghuaa 2014-12-29
  • 打赏
  • 举报
回复
exec sp_executesql 'select a.*,b.* into #tb from table1 a ,table2 b'
卖水果的net 版主 2014-12-29
  • 打赏
  • 举报
回复 1
如要有重复的列名称,你必须把列名称一个一个的写全了,相当名称的 那些列,必须将其中一个重命名。 但是要提醒你一下: 1.sp_executesql 后的这个动态SQL ,你要用这样的形式 N'select* into #t from mytable' 2.这样的临时表,你访问不到,同 2# 的提示。
还在加载中灬 2014-12-26
  • 打赏
  • 举报
回复
DECLARE @s NVARCHAR(4000)
SET @s = ''
SELECT  @s = @s + ',' + 'isnull('+QUOTENAME(name)+','''')'
FROM    syscolumns
WHERE   id = OBJECT_ID('表名')
        --AND name NOT IN ( '不希望显式的列' )
--以上从系统表 syscolumns 查找你的表的字段,可在这里面过滤你不需要的字段名
SET @s = STUFF(@s, 1, 1, '')
EXEC('select '+@s+' from 表名  ')
--动态执行,详细的可以BAIDU下
xingeddx 2014-12-26
  • 打赏
  • 举报
回复
引用 7 楼 ky_min 的回复:
你可以放到全局的临时表上去,后就还看得到 如果嫌列太多,可以参照大版的方式,用动态的执行方式
大版的那个完全看不懂呀,能否简单说下原理,百度能找到函数的使用,但是不知道为啥这样做
还在加载中灬 2014-12-26
  • 打赏
  • 举报
回复
你可以放到全局的临时表上去,后就还看得到 如果嫌列太多,可以参照大版的方式,用动态的执行方式
xingeddx 2014-12-26
  • 打赏
  • 举报
回复
引用 2 楼 ky_min 的回复:
你手动写出列名,不要用* 还有提醒你一下,EXEC执行完之后,临时表你就访问不到了
那这种创建临时表的方式是不是基本没有啥用了呢?本来建立临时表就是到后面用的,结果不能用了。我这样建立临时表的目的就是复制查询结果的表结构及内容的。
xingeddx 2014-12-26
  • 打赏
  • 举报
回复
引用 1 楼 DBA_Huangzj 的回复:
把列全部列出来,除非动态,不然也不难
就是因为列太多了,我才异想天开的想到这的
xingeddx 2014-12-26
  • 打赏
  • 举报
回复
引用 2 楼 ky_min 的回复:
你手动写出列名,不要用* 还有提醒你一下,EXEC执行完之后,临时表你就访问不到了
真是这么回事,本来我还想在最后给临时表上添加新的列呢,这下是不行了,不过
發糞塗牆 2014-12-26
  • 打赏
  • 举报
回复
你也可以用这种类似方法动态生成列名
DECLARE @s NVARCHAR(4000)
SET @s = ''
SELECT  @s = @s + ',' + 'isnull('+QUOTENAME(name)+','''')'
FROM    syscolumns
WHERE   id = OBJECT_ID('表名')
        --AND name NOT IN ( '不希望显式的列' )
SET @s = STUFF(@s, 1, 1, '')
EXEC('select '+@s+' from 表名  ')
还在加载中灬 2014-12-26
  • 打赏
  • 举报
回复
你手动写出列名,不要用* 还有提醒你一下,EXEC执行完之后,临时表你就访问不到了
發糞塗牆 2014-12-26
  • 打赏
  • 举报
回复
把列全部列出来,除非动态,不然也不难

34,593

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧