select * 如何排除某列?

ddr527 2009-05-19 06:16:22
因为列比较多有A B C D E F
实际上是要select B C D E F from table,但觉得这样麻烦。
有没有办法用select * from table但排除A列的写法?
...全文
7142 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
shreea 2011-10-21
  • 打赏
  • 举报
回复 1
想想也有简单的语句
select * into #tmp from xxxx
alter table #tmp drop column YYYY
select * from #tmp
Tomzzu 2009-05-19
  • 打赏
  • 举报
回复
LZ和我一样懒, 提供一个函数给你吧, 根据表名, 列出所有的字段, 至于想排除某列的话, 删除那个字段就行了
调用起来很方便, 如

select dbo.fn_GetField('sysobjects')
select dbo.fn_GetField('Table')
select dbo.fn_GetField('LZ的表名')


函数体如下

if( object_id('fn_GetField') is not null )
drop function fn_GetField
go
create function fn_GetField( @cTblName varchar(80) )
returns varchar(2000)
as
begin
declare @cSQL varchar(1000)
set @cSQL=''
select @cSQL = @cSQL + name+', '
from syscolumns
where id = object_id(@cTblName)
order by colid
set @cSQL = 'select ' + left( @cSQL, len(@cSQL)-1 ) + ' from ' + @cTblName
return( @cSQL )
end
go
olddown 2009-05-19
  • 打赏
  • 举报
回复
怪异的要求
liangCK 2009-05-19
  • 打赏
  • 举报
回复
写个视图.
ch315537 2009-05-19
  • 打赏
  • 举报
回复
为了方便而要排除某列,结果只会适得其反!!
sdhdy 2009-05-19
  • 打赏
  • 举报
回复
--给你这个,取得一个表的字段列表,然后把不需要的列去掉。
declare @sql varchar(1000)
set @sql=''
select @sql=@sql+name+',' from syscolumns where id=(select id from sysobjects where name='tablename') order by colid
set @sql=left(@sql,len(@sql)-1)
print @sql
蓝海D鱼 2009-05-19
  • 打赏
  • 举报
回复
select 语句 貌似 没有 排除的

34,873

社区成员

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

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