如何查询一个表中除某几个字段外其他所有的字段 | 您所在的位置:网站首页 › oracle查询所有表的所有字段 › 如何查询一个表中除某几个字段外其他所有的字段 |
话说楼主刚开始也不知道怎么查,然后就开始百度了 大部分网友都是建议一个一个写 当然程序员是最懒的啦,一个一个写多痛苦啊 接着找 还别说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 |
CopyRight 2018-2019 实验室设备网 版权所有 |