如何查詢乙個表中除某幾個欄位外其他所有的字段

2021-09-12 02:50:06 字數 1296 閱讀 2883

大部分網友都是建議乙個乙個寫 當然程式設計師是最懶的啦,乙個乙個寫多痛苦啊

接著找還別說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轉換了  

文中**引自: 

Linq中查詢乙個表中指定的幾個字段

var ts t.findallitems where p p.companyid cursiteuser.companyid select s new distinct tolist orderbydescending s s.billperiod take 24 findallitems 為查詢...

SQL中查詢某幾個字段完全一樣的資料

有以下乙個表 movestar id,name,title,ad程式設計客棧dress 內容為 現在要查詢所有具有相同的title和address的人 複製 如下 select star1.name,star2.name,star1.title,star1.address from movestar...

如何從原有的表中建立乙個新錶,並增加幾個字段?

如何從原有的表中建立乙個新錶,並增加幾個字段?可以用來選擇的方法是 假設你的表為 table1 字段列表為 f1 varchar2 10 f2 varchar2 20 f3 number 3 如果你想把表變成 f1 varchar2 10 f new varchar2 20 f2 varchar2 ...