我有一张表aa
具体内容为
ID FNAME
1 福利费
2 交通费
3 教育费
4 其他另外有一张表bb
具体内容为
福利费 交通费 其他 教育费
100 10 50 400
现在我要做的是我要从表bb里面搜索各项费用,但是搜索出来的结果集字段的顺序要求跟表aa里面ID的顺序同。因为以后表aa里ID对应的FNAME要做调整
具体内容为
ID FNAME
1 福利费
2 交通费
3 教育费
4 其他另外有一张表bb
具体内容为
福利费 交通费 其他 教育费
100 10 50 400
现在我要做的是我要从表bb里面搜索各项费用,但是搜索出来的结果集字段的顺序要求跟表aa里面ID的顺序同。因为以后表aa里ID对应的FNAME要做调整
因为我以后那张aa表里的FNAME内容变了 bb里的字段也会跟着变 不能定死
select @a=''
select @a=@a+'|'+FNAME from aa order by ID
再把ORDER BY改成变量的形式:order by charindex('|'+搜索结果+'|',@a+'|')
结果是(其中福利费 交通费 其他 教育费是字段名):
福利费 交通费 其他 教育费
100 10 50 400
SET @vchSql = @vchSql + FNAME + ','
FROM aaSET @vchSql = LEFT(@vchSql,LEN(@vchSql) - 1)
SET @vchSql = 'SELECT ' + @vchSql +' FROM bb'
EXEC(@vchSql)
id ,收费类型, 数额
然后再把结果行列转换。
declare @a varchar(2000)
select @a=''
select @a=@a+','+FItemName from aa order by ID
exec('select 姓名,部门'+@a+'from bb)