select * from usertable where userage>21
查询用户中年龄大雨21岁的人,但是我不想用*来查询所有的,我不需要其中的某一个字段,因为字段特别多,要来列举我要要的就太麻烦了。
虽有办法写一个sql语句仅仅排除我不需要的某一个两个字段?其他字段照常查询?
up有分,特别经典的回答将另外开帖子给分
给200分,结果说不能给这么多,没办法
...全文
4715打赏收藏
求教sql语句并散分
select * from usertable where userage>21 查询用户中年龄大雨21岁的人,但是我不想用*来查询所有的,我不需要其中的某一个字段,因为字段特别多,要来列举我要要的就太麻烦了。 虽有办法写一个sql语句仅仅排除我不需要的某一个两个字段?其他字段照常查询? up有分,特别经典的回答将另外开帖子给分 给200分,结果说不能给这么多,没办法
declare @ varchar(8000),@name varchar(100)
set @name='user'
set @=''
select @=@+'['+@name+']'+'.'+rtrim(name)+',' from syscolumns where id=object_id('tablename') and name<>'col1' and name<>'col2' and.........
set @=left(@,len(@)-1)
exec('select '+@+' from tablename as [user]')
declare @ varchar(8000)
set @=''
select @=@+'usertable.'+rtrim(name)+',' from syscolumns where id=object_id('usertable') and name<>'你不要的列名'
set @=left(@,len(@)-1)
exec('select '+@+' from usertable where userage>21')
declare @sql varchar(300)
set @col = 'item'
select @s = count(*) from syscolumns as A left join sysobjects as B
on A.id = B.id
where B.name = 'a1'
print @s
set @sql = 'select ""'
if @s > 2
begin
set @i = 1
while exists (select * from syscolumns as A left join sysobjects as B
on A.id = B.id where B.name = 'a1' and A.colorder >= @i and (A.name) <> @col )
begin
select top 1 @sql = @sql + ',' + A.name, @i = A.colorder from syscolumns as A left join sysobjects as B
on A.id = B.id where B.name = 'a1' and A.colorder >= @i and (A.name) <> @col
set @i = @i +1
end
end
set @sql = @sql + ' from a1'
print @sql
exec (@sql)
declare @ varchar(8000)
set @=''
select @=@+rtrim(name)+',' from syscolumns where id=object_id('usertable') and name<>'你不要的列名'
set @=left(@,len(@)-1)
exec('select '+@+' from usertable where userage>21')
declare @ varchar(8000)
set @=''
select @=@+rtrim(name)+',' from syscolumns where id=object_id('usertable') and name<>'你不要的列名'
set @=left(@,len(@)-1)
exec('select '+@+' from usertable where userage>21')