sql语句能查询一个表中除了某列之外的所有列么?

时间:2021-04-14 21:52:58
是这样子的,我想查询一个有20多列的表,但是我不需要最后一个列,让我把前面一个个列出来select感觉麻烦,有语句能直接select的时候排除掉指定列么?

7 个解决方案

#1



declare @table varchar(100)
declare @a varchar(2000)
set @table='a'--表名
select @a=ISNULL(@a,'')+','+name from sys.columns 
where object_id=(select object_id from sys.tables where name=@table)
and name not in('')--括号里写你不要的列
set @a=stuff(@a,1,1,'')
exec('select '+@a+' from '+@table)

#2


楼主要善于用sql server的查询分析,右键你的表==>编写表脚本为==>select 到==>新查询编辑窗口,去掉最后一个字段不是很方便吗?

#3


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 表名  ')

#4



select name + ',' 
from syscolumns 
where id = object_id('mytable') 

-- 这样可以把所有列名都弄出来,直接干掉最后一行和倒数第二行的逗号,就是你的结果

#5


楼上的好强大啊

#6


引用 2 楼 rockyljt 的回复:
楼主要善于用sql server的查询分析,右键你的表==>编写表脚本为==>select 到==>新查询编辑窗口,去掉最后一个字段不是很方便吗?


呵呵,好办法 sql语句能查询一个表中除了某列之外的所有列么?

#7


SELECT s.name+'=tkm.'+s.name+',' FROM syscolumns s
WHERE id=OBJECT_ID('T_KPI_Mapping')
如果是连接查询什么的,可以使用这个,带上前缀什么都行

#1



declare @table varchar(100)
declare @a varchar(2000)
set @table='a'--表名
select @a=ISNULL(@a,'')+','+name from sys.columns 
where object_id=(select object_id from sys.tables where name=@table)
and name not in('')--括号里写你不要的列
set @a=stuff(@a,1,1,'')
exec('select '+@a+' from '+@table)

#2


楼主要善于用sql server的查询分析,右键你的表==>编写表脚本为==>select 到==>新查询编辑窗口,去掉最后一个字段不是很方便吗?

#3


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 表名  ')

#4



select name + ',' 
from syscolumns 
where id = object_id('mytable') 

-- 这样可以把所有列名都弄出来,直接干掉最后一行和倒数第二行的逗号,就是你的结果

#5


楼上的好强大啊

#6


引用 2 楼 rockyljt 的回复:
楼主要善于用sql server的查询分析,右键你的表==>编写表脚本为==>select 到==>新查询编辑窗口,去掉最后一个字段不是很方便吗?


呵呵,好办法 sql语句能查询一个表中除了某列之外的所有列么?

#7


SELECT s.name+'=tkm.'+s.name+',' FROM syscolumns s
WHERE id=OBJECT_ID('T_KPI_Mapping')
如果是连接查询什么的,可以使用这个,带上前缀什么都行