码迷,mamicode.com
首页 > 其他好文 > 详细

如何查询一个表中除某几个字段外其他所有的字段

时间:2015-04-28 13:44:05      阅读:100      评论:0      收藏:0      [点我收藏+]

标签:

话说楼主刚开始也不知道怎么查,然后就开始百度了

大部分网友都是建议一个一个写 当然程序员是最懒的啦,一个一个写多痛苦啊

接着找

还别说csdn里还有不少大牛的

于是出现了这个脚本

 

declare @s nvarchar(1000)
select @s=isnull(@s+,,‘‘)+quotename(Name) from syscolumns where ID=object_id(表名and Name not in(排除字段order by colid 
exec(select +@s+ from 表名)

 执行之后 哇 完美 正是我想要的结果

然后博主闲着没事又往下翻了翻有另外一个网友也给出了类似的方法代码如下:

 

得到表中除Col1、Col2的所有列
例如:userno_fm、userno_to
create table test(
       num int identity(1,1),
       userno_fm varchar(10),
       userno_to varchar(10),
       username varchar(10))
select * from test

declare @sql varchar(8000)
    select @sql=‘‘
    select @sql=@sql+,+[name] from 
    (select [name] from syscolumns where object_id(N[test])=[id] and [name] not in (userno_fm,userno_to)) A

    set @sql=select +stuff(@sql,1,1,‘‘)+ from [test]
    --print @sql
    exec (@sql)

drop table test

执行一下 结果是相同的

也可以看出两个方法直接的差别

第一个堪称完美

第二个有点笨拙因为  

select @sql=‘‘ select @sql=@sql+,+[name] from  可以用@s=isnull(@s+,,‘‘)代替

 select +stuff(@sql,1,1,‘‘) 不如 quotename(Name)方便直接

不过第二个也正是博主的写作风格所以博主才有切身的感受见到第一个代码如土鳖与到了女神

今天又一次感受到了编程之美,代码之美 心中一阵清风吹过 爽

博主又有了新猜想,以后直接用sql查询出json格式的数据就不用在后端第三方工具将table转换了  

文中代码引自: http://bbs.csdn.net/topics/330143955#quote

 

如何查询一个表中除某几个字段外其他所有的字段

标签:

原文地址:http://www.cnblogs.com/maxiao/p/4462532.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!