34,837
社区成员




上面错了不好意识
select 产品名称,规格信息=case when convert(varchar(10),单位)<>'' and convert(varchar(10),单位)<>'0' then '单位:'+单位+';' else '' end
+case when convert(varchar(10),高度)<>'' and convert(varchar(10),高度)<>'0' then '高度:'+convert(varchar(10),高度)+';'else '' end
+case when convert(varchar(10),胸径)<>'' and convert(varchar(10),胸径)<>'0' then '胸径:'+convert(varchar(10),胸径)+';'else '' end
+case when convert(varchar(10),冠幅)<>'' and convert(varchar(10),冠幅)<>'0' then '冠幅:'+convert(varchar(10),冠幅)+';'else '' end
+case when convert(varchar(10),地径)<>'' and convert(varchar(10),地径)<>'0' then '地径:'+convert(varchar(10),地径)+';'else '' end
+case when convert(varchar(10),备注)<>'' and convert(varchar(10),备注)<>'0' then '备注:'+备注+';' else '' end
from product
产品名称 规格信息
---------- ------------------------------------------------------------------------------------------------
斑竹 单位:棵;高度:100;胸径:200;冠幅:30;地径:20;备注:rewr;
扁桃 高度:20;冠幅:32;地径:32;
地柏 单位:棵;胸径:44;地径:20;备注:3213;
(3 行受影响)
create table Product(产品名称 varchar(10),单位 varchar(10),高度 int, 胸径 int, 冠幅 int, 地径 int, 备注 varchar(10))
insert into product values('斑竹','棵',100,200,30,20,'rewr')
insert into product values('扁桃','',20,0,32,32,'')
insert into product values('地柏','棵',0,44,0,20,'3213')
select * from product
select 产品名称,规格信息=case when convert(varchar(10),单位)<>'' or convert(varchar(10),单位)<>'0' then '单位:'+单位 else '' end
+case when convert(varchar(10),高度)<>'' or convert(varchar(10),高度)<>'0' then '高度:'+convert(varchar(10),高度)+';'else '' end
+case when convert(varchar(10),胸径)<>'' or convert(varchar(10),胸径)<>'0' then '胸径:'+convert(varchar(10),胸径)+';'else '' end
+case when convert(varchar(10),冠幅)<>'' or convert(varchar(10),冠幅)<>'0' then '冠幅:'+convert(varchar(10),冠幅)+';'else '' end
+case when convert(varchar(10),地径)<>'' or convert(varchar(10),地径)<>'0' then '地径:'+convert(varchar(10),地径)+';'else '' end
+case when convert(varchar(10),备注)<>'' or convert(varchar(10),备注)<>'0' then '备注:'+备注 else '' end
from product
产品名称 规格信息
---------- ----------------------------------------------------------------------------------------------
斑竹 单位:棵高度:100;胸径:200;冠幅:30;地径:20;备注:rewr
扁桃 单位:高度:20;胸径:0;冠幅:32;地径:32;备注:
地柏 单位:棵高度:0;胸径:44;冠幅:0;地径:20;备注:3213
(3 行受影响)
--按你的要求应该是这样:
select 产品名称 , 规格信息 = '单位:' + 单位 + ';' +
case when 高度 = 0 then '' else '高度:' + cast(高度 as varchar) end + ';' +
case when 胸径 = 0 then '' else '胸径:' + cast(胸径 as varchar) end + ';' +
case when 冠幅 = 0 then '' else '冠幅:' + cast(冠幅 as varchar) end + ';' +
case when 地径 = 0 then '' else '地径:' + cast(地径 as varchar) end + ';' +
case when 备注 = '' then '' else '备注:' + cast(地径 as varchar) end + ';'
from tb
select 产品名称 , 规格信息 = '单位:' + 单位 + ';' +
'高度:' + case when 高度 = 0 then '' else cast(高度 as varchar) end + ';' +
'胸径:' + case when 胸径 = 0 then '' else cast(胸径 as varchar) end + ';' +
'冠幅:' + case when 冠幅 = 0 then '' else cast(冠幅 as varchar) end + ';' +
'地径:' + case when 地径 = 0 then '' else cast(地径 as varchar) end + ';' +
'备注:' + case when 备注 = '' then '' else cast(地径 as varchar) end + ';'
from tb
select 产品名称 , '单位' + 单位 + ';' + '高度' + case when 高度 = 0 then '' else cast(高度 as varchar) end + 其他一样 from tb
select 产品名称 ,
[规格信息] = '单位:'+ltrim(单位)+'; 高度:'+ltrim(高度)+';胸径:'+ltrim(胸径)+';冠幅:'+ltrim(冠幅)+';地径:'+地径+';备注:'+ltrim(备注)
from table
所有全加上这个ltrim()