sql问题 新手求教!
本帖最后由 u011932802 于 2013-09-02 16:29:01 编辑 数据表A格式如下:
单位 方式 相关代号
0101 2 2
0102 1 1,3
0103 3 1,2,4
0102 1 2,3
0102 2 1,4
求查询语句,实现下边结果
单位 方式1的代号明细 方式2的代号明细 方式3的代号明细
0101 2
0102 1,2,3 1,4
0103 1,2,4
求sql代码。新手,请指教。
最好是简单的SELECT语句。请问是否可行?
[解决办法]
if OBJECT_ID('tempdb..#temp', 'u') is not null drop table #temp;
go
create table #temp( [单位] varchar(100), [方式] varchar(100), [相关代号] varchar(100));
insert #temp
select '0101','2','2' union all
select '0102','1','1,3' union all
select '0103','3','1,2,4' union all
select '0102','1','2,3' union all
select '0102','2','1,4'
--方法2:
select
[单位],
方式1的代号明细 =ISNULL(MAX(CASE [方式] WHEN '1' THEN [相关代号] END), ''),
方式2的代号明细 =ISNULL(MAX(CASE [方式] WHEN '2' THEN [相关代号] END), ''),
方式3的代号明细 =ISNULL(MAX(CASE [方式] WHEN '3' THEN [相关代号] END), '')
from #temp a
GROUP BY [单位]
/*
单位方式1的代号明细方式2的代号明细方式3的代号明细
01012
01022,31,4
01031,2,4
*/