declare @sql varchar(max) select @sql=isnull(@sql+',','')+'isnull('+a.name+','+case when charindex(b.name, 'tinyint,smallint,int,real,money,float,bit,decimal,numeric,smallmoney,bigint')>0 then '0)' else ''''')' end from sys.columns a join sys.systypes b on a.user_type_id=b.xuserType where a.object_id=object_id('your table name') set @sql='select '+@sql+' from [table] where ....' print @sql给你个动态拼接的例子
selectcol=case
when t.t1 is null then ''
else t.t1
endfrom table t
用动态生成执行语句
declare @sql varchar(max)
select @sql=isnull(@sql+',','')+'isnull('+a.name+','+case when charindex(b.name,
'tinyint,smallint,int,real,money,float,bit,decimal,numeric,smallmoney,bigint')>0 then '0)'
else ''''')' end
from sys.columns a
join sys.systypes b on a.user_type_id=b.xuserType
where a.object_id=object_id('your table name')
set @sql='select '+@sql+' from [table] where ....'
print @sql给你个动态拼接的例子