如何查詢一個表中除某幾個字段外其餘全部的字段

話說樓主剛開始也不知道怎麼查,而後就開始百度了程序員

大部分網友都是建議一個一個寫 固然程序員是最懶的啦,一個一個寫多痛苦啊sql

接着找編程

還別說csdn裏還有很多大牛的json

因而出現了這個腳本後端

 

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

 執行以後 哇 完美 正是我想要的結果ide

而後博主閒着沒事又往下翻了翻有另一個網友也給出了相似的方法代碼以下:工具

 

獲得表中除Col一、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

執行一下 結果是相同的spa

也能夠看出兩個方法直接的差異.net

第一個堪稱完美code

第二個有點笨拙由於  

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

相關文章
相關標籤/搜索