📄 动态交叉查询.txt
字号:
有一个这样的结构:
Id no value
A 1 3
A 2 4
A 3 5
B 1 6
B 2 7
B 3 8
查询结果:
Id value1 value2 value3
A 3 4 5
B 6 7 8
查询语句怎么写
====================================================================
还有,给两个字段均相同的两个表t1,t2,字段假设为id,value;
写一个语句找出t1表中id不在t2表中存在的id和value,不允许嵌套
/*测试数据*/
create table #a ( id char(1),no int,value int) /*源表*/
insert into #a select 'A', 1, 3
union all select 'A', 2, 4
union all select 'A', 3, 5
union all select 'B', 1, 6
union all select 'B', 2, 7
union all select 'B', 3 , 8
/*借助临时表改字段名*/
create table #b(id char(1),no varchar(10),value int)
insert into #b select id,'value'+cast(no as varchar(1)),value from #a
/*动态查询*/
declare @str nvarchar(4000)
select @str=''
select @str=@str+','+quotename(no)+'=sum(case no when '+quotename(no,N'''')+' then value else 0 end)'
from #b group by no
exec('select id'+@str+'from #b group by id ')
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -