如何根据列名选择该列

ywood 2005-02-05 08:30:42
我想在以下三个表为基础来查询数据
表A:
颜色 颜色类别
CLAB AB
CLPB PB
CLCS CS
CLWT CS
表B:
型号 零件名称 AB PB CS
4181 48衬托 15 2 5
4181 60衬托 10 0 6
4191 78衬托 2 3 5
4191 80衬托 5 8 3
表C:
型号 颜色
4181 CLAB
4191 CLWT
杳询到以下数据:
型号 颜色 零件名称 类别
4181 CLAB 48衬托 15
4181 CLAB 60衬托 10
4191 CLWT 78衬托 5
4191 CLWT 80衬托 3
...全文
229 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
ywood 2005-02-24
  • 打赏
  • 举报
回复
但是case不能保存在view视图中,我到时在客户端如何调用这些数据呢!!
didoleo 2005-02-05
  • 打赏
  • 举报
回复
select b.型号,c.颜色,a.零件名称,
类别=case when a.类别='AB' then b.AB
when a.类别='PB' then b.PB
when a.类别='CS' then b.CS
end from 表B b left join 表C c on
b.型号=c.型号
left join 表A a on
c.颜色=a.颜色
lsxaa 2005-02-05
  • 打赏
  • 举报
回复
唉,笨了

select a.型号,b.颜色,a.零件名称
,case when right(b.颜色,2)='AB' then a.AB
when right(b.颜色,2)='PB' then a.PB
when right(b.颜色,2)='CS' then a.CS
end as 类别
from b a,C b
where a.型号=b.型号
xluzhong 2005-02-05
  • 打赏
  • 举报
回复
select b.型号,c.颜色,b.零件名称,类别=isnull(a.AB,0)+isnull(a.PB,0)+isnull(a.CS,0)
from 表A a,表B b,表C c
where b.型号=c.型号 and c.颜色=a.颜色

lsxaa 2005-02-05
  • 打赏
  • 举报
回复
select 型号,零件名称
,'AB'+cast(isnull(AB,'') as varchar(10)) as AB
,'PB'+cast(isnull(AB,'') as varchar(10)) as PB
,'CS'+cast(isnull(AB,'') as varchar(10)) as CS
into #t
from B

select a.型号,b.颜色,a.零件名称
,case when charindex(right(b.颜色,2),a.AB)>0 then
replace(a.AB,right(b.颜色,2),'')
when charindex(right(b.颜色,2),a.PB)>0 then
replace(a.PB,right(b.颜色,2),'')
when charindex(right(b.颜色,2),a.CS)>0 then
replace(a.CB,right(b.颜色,2),'')
end
from #t a,C b
where a.型号=b.型号
where
Qihua_wu 2005-02-05
  • 打赏
  • 举报
回复
select b.*,c.零件名称,(case when c.颜色 = 'CLAB' then b.AB else (case when c.颜色 = 'CLPB' then b.PB else (case when c.颜色 = 'CLCS' OR c.颜色='CLWT' then b.CS else end
) end
) end)
from 表b b,表C c
where b.型号=c.型号
子陌红尘 2005-02-05
  • 打赏
  • 举报
回复
select
c.型号,
c.颜色,
b.零件名称,
case a.颜色类别
when 'AB' then b.AB
when 'PB' then b.PB
when 'CS' then b.CS
end as 类别
from
表A a,
表B b,
表C c
where
a.颜色 = b.颜色 and b.型号 = c.型号
Andy__Huang 2005-02-05
  • 打赏
  • 举报
回复
select b.型号,c.颜色,b.零件名称,类别=isnull(a.AB,0)+isnull(a.PB,0)+isnull(a.CS,0)
from 表A a,表B b,表C c
where b.型号=c.型号 and c.颜色=a.颜色
cemma 2005-02-05
  • 打赏
  • 举报
回复
没看动基础表的含义 :(
ywood 2005-02-05
  • 打赏
  • 举报
回复
没有人知道何解吗

34,593

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧