SQL里怎么查询一个表里除了某列之外的其他所有列的数据

ouyang303 2011-11-24 02:29:47
SQL里怎么查询一个表里除了某列之外的其他所有列的数据
比如有个table 字段a,d,k,..y 我要把记录显示出来 但是不要显示a字段那一列
...全文
10048 18 打赏 收藏 转发到动态 举报
写回复
用AI写文章
18 条回复
切换为时间正序
请发表友善的回复…
发表回复
yubofighting 2011-11-24
  • 打赏
  • 举报
回复
如果自增主键不涉及外键关系的话,可以先删除自增条件,在进行导入操作
  • 打赏
  • 举报
回复
SQL codedeclare @col varchar(1000)
set @col=''
select @col=@col+','+name from syscolumns where id=object_id('表名') and name<>'排除的字段名' order by colid
set @col=stuff(@col,1,1,'')
exec('select '+@col+' from 表名')
pk_love 2011-11-24
  • 打赏
  • 举报
回复
支持三楼的方法的,此方法比select d,k,...y from table 这个好

declare @col varchar(1000)
set @col=''
select @col=@col+','+name from syscolumns where id=object_id('表名') and name<>'排除的字段名' order by colid
set @col=stuff(@col,1,1,'')
exec('select '+@col+' from 表名')
wnf2009 2011-11-24
  • 打赏
  • 举报
回复
支持2楼 ~~~
作为程序员,要少做重复的事
xingxingbanyue 2011-11-24
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 sql_sf 的回复:]
引用 4 楼 ouyang303 的回复:
引用 2 楼 flysql 的回复:
SQL code
declare @col varchar(1000)
set @col=''
select @col=@col+','+name from syscolumns where id=object_id('表名') and name<>'排除的字段名' order by colid
set ……
[/Quote]

+1
pengxuan 2011-11-24
  • 打赏
  • 举报
回复
两种办法
1.手写
2.动态拼SQL
sundayzhao 2011-11-24
  • 打赏
  • 举报
回复
没有这种语句
fuxiyang 2011-11-24
  • 打赏
  • 举报
回复
表上点右键-编写表脚本为-Insert到-新查询编辑器窗口
FlySQL 2011-11-24
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 sql_sf 的回复:]
引用 4 楼 ouyang303 的回复:
引用 2 楼 flysql 的回复:
SQL code
declare @col varchar(1000)
set @col=''
select @col=@col+','+name from syscolumns where id=object_id('表名') and name<>'排除的字段名' order by colid
set ……
[/Quote]

使用文本显示结果,执行 select * from tb where 1=2
把空格替换成, 去掉多余的字段
ouyang303 2011-11-24
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 ouyang303 的回复:]
引用 3 楼 sql_sf 的回复:
老实写吧
如果多到写的手软时候
就拼系统表sys.columns

好几百个字段啊。。。
[/Quote]
主要是两张自增长的表,我想用INSERT INTO SELECT,想把主键排除掉,不然老报错,设置IDENTITY_INSERT 为ON都不行
sql_sf 2011-11-24
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 ouyang303 的回复:]
引用 2 楼 flysql 的回复:
SQL code
declare @col varchar(1000)
set @col=''
select @col=@col+','+name from syscolumns where id=object_id('表名') and name<>'排除的字段名' order by colid
set @col=stuff(@col,1,1,'')……
[/Quote]
表--右键--生成查询脚本--删除不要的列
FlySQL 2011-11-24
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 ouyang303 的回复:]
引用 2 楼 flysql 的回复:
SQL code
declare @col varchar(1000)
set @col=''
select @col=@col+','+name from syscolumns where id=object_id('表名') and name<>'排除的字段名' order by colid
set @col=stuff(@col,1,1,'')……
[/Quote]

不用动态就慢慢一个一个地写
ouyang303 2011-11-24
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 sql_sf 的回复:]
老实写吧
如果多到写的手软时候
就拼系统表sys.columns
[/Quote]
好几百个字段啊。。。
zjl8008 2011-11-24
  • 打赏
  • 举报
回复
可以用动态语句,从系统表视图中 取出table包含的列,除了不要显示的,拼接为select语句字符串
然后exec(sql)
ouyang303 2011-11-24
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 flysql 的回复:]
SQL code
declare @col varchar(1000)
set @col=''
select @col=@col+','+name from syscolumns where id=object_id('表名') and name<>'排除的字段名' order by colid
set @col=stuff(@col,1,1,'')
exec('select '+@co……
[/Quote]
不用动态SQL语句怎么实现?
sql_sf 2011-11-24
  • 打赏
  • 举报
回复
老实写吧
如果多到写的手软时候
就拼系统表sys.columns
FlySQL 2011-11-24
  • 打赏
  • 举报
回复
declare @col varchar(1000)
set @col=''
select @col=@col+','+name from syscolumns where id=object_id('表名') and name<>'排除的字段名' order by colid
set @col=stuff(@col,1,1,'')
exec('select '+@col+' from 表名')
-晴天 2011-11-24
  • 打赏
  • 举报
回复
select d,k,...y from table

34,575

社区成员

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

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