27,581
社区成员
发帖
与我相关
我的任务
分享if object_id('[tb]') is not null drop table [tb]
go
create table [tb]([合同号码] varchar(11),[省] varchar(16),[市] varchar(20),[县] varchar(6))
insert [tb]
select 'H2010000001','贵州省','黔东南苗族侗族自治州','黄平县' union all
select 'H2010000001','贵州省','黔东南苗族侗族自治州','施秉县' union all
select 'H2010000012','新疆维吾尔自治区','阿克苏地区','库车县' union all
select 'H2010000012','新疆维吾尔自治区','阿克苏地区','新和县'
go
select 合同号码,目的站=省+市+stuff(
(select ','+ 县
from tb
where 合同号码=t.合同号码
for xml path('')),1,1,'')
from tb t
group by 合同号码,省+市
/**
合同号码 目的站
----------- ------------------------------------------------
H2010000001 贵州省黔东南苗族侗族自治州黄平县,施秉县
H2010000012 新疆维吾尔自治区阿克苏地区库车县,新和县
(2 行受影响)
**/
select *
from
(
select distinct 合同号码,目的站=省+市+stuff(
(select ','+县
from v_comparea_htlb _t
where _t.合同号码=t.合同号码
for xml path('')),1,1,'')
from v_comparea_htlb t
) tmp
if object_id('tb') is not null drop table tb
go
create table tb (合同号码 varchar(20),省 varchar(20), 市 varchar(50), 县 varchar(10))
insert tb
select 'H2010000001', '贵州省', '黔东南苗族侗族自治州', '黄平县' union all
select 'H2010000001','贵州省', '黔东南苗族侗族自治州' ,'施秉县' union all
select 'H2010000001', '贵州省', '阿克苏地区', '库车县' union all
select 'H2010000001', '贵州省', '阿克苏地区', '新和县'
with t1 as
(
select distinct 合同号码,省 ,市, 县=stuff(
(select ',' +县
from tb
where 合同号码=t.合同号码 and 省=t.省 and 市=t.市
for xml path('')),1,1,'')
from tb t
),t2 as
(
select distinct 合同号码,省 ,市=stuff(
(select ';' +市+县
from t1
where 合同号码=t.合同号码 and 省=t.省
for xml path('')),1,1,'')
from t1 t
)
select 合同号码,目的站=省+市 from t2
/*
合同号码 目的站
-------------------- ----------------------------------------------------------------
H2010000001 贵州省阿克苏地区库车县,新和县;黔东南苗族侗族自治州黄平县,施秉县
(所影响的行数为 1 行)
*/