declare @sql varchar(4000)
set @sql = 'select fUniqueID'
select @sql = @sql + ',MAX(case fName when '''+fName+''' then fValue end) as '+fName
from (select distinct fName from v_WebOA_FlowedMessage_File) as a
set @sql = @sql+' from v_WebOA_FlowedMessage_File WHERE 条件 group by fUniqueID'
exec(@sql)我用以上是说有错的。因为视图v_WebOA_FlowedMessage_File没有动态字段,郁闷!
虽然可以在程序逻辑用DATASET来处理可以得到结果,但我想直接传入参数来得到想要的结果,这样快点吧
set @sql = 'select fUniqueID'
select @sql = @sql + ',MAX(case fName when '''+fName+''' then fValue end) as '+fName
from (select distinct fName from v_WebOA_FlowedMessage_File) as a
set @sql = @sql+' from v_WebOA_FlowedMessage_File WHERE 条件 group by fUniqueID'
exec(@sql)我用以上是说有错的。因为视图v_WebOA_FlowedMessage_File没有动态字段,郁闷!
虽然可以在程序逻辑用DATASET来处理可以得到结果,但我想直接传入参数来得到想要的结果,这样快点吧
set @sql = 'select fUniqueID'
select @sql = @sql + ',MAX(case fName when '''+fName+''' then fValue end) as '+fName
from (select distinct fName from v_WebOA_FlowedMessage_File) as a
set @sql = @sql+' Into ##Temp from v_WebOA_FlowedMessage_File group by fUniqueID' --這裡使用全局臨時表#Temp
exec(@sql)--查詢
Select * From ##Temp Where 条件 --刪除
Drop Table ##Temp
然后 根据 数据drop 不要的字段create table #tmp(F1 nvarchar(50),F2 nvarchar(50),F3 nvarchar(50))
declare @d_sql varchar(200)
//////////////////////////////
set @d_sql='ALTER TABLE #tmp drop COLUMN F3'
exec(@d_sql)
select * from #tmp
drop table #tmp或者 你一开始 就 动态 创建 临时表
wangtiecheng(不知不为过,不学就是错!)