请问这个sql语句怎么写?

jdbreeze 2003-08-19 11:42:48
有table1:
厂房 设备A旧 设备B 设备A替代品
厂房1 52 56 0
厂房2 26 37 16
......

我想用sql得到另一张表
table2:
厂房 类型 数量
厂房1 设备A 52
厂房1 设备B 56
厂房2 设备A 16
厂房2 设备B 37
.......

当设备A替代品一列有了数值(不为0)则表二中设备A中的值就不用旧设备A的数量,而用替代品的数量。请问生成table2的SQL怎么写?谢谢!!
...全文
18 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
jdbreeze 2003-08-21
  • 打赏
  • 举报
回复
union all前面的記錄是关于设备A的,
union all后面的記錄是关于设备B的,
不可能一模一樣的?
愉快的登山者 2003-08-19
  • 打赏
  • 举报
回复
select 厂房, '设备A' 类型, (case when 设备A替代品 > 0 then 设备A替代品 else 设备A旧 end) 数量 from table1
union all
select 厂房, '设备B', 设备B from table1
order by 厂房, 类型


愉快的登山者


◢◣◢◣◢◣
CrazyFor 2003-08-19
  • 打赏
  • 举报
回复
select 厂房,'设置A' 类型 ,(case when 设备A替代品 <>0 then 设备A替代品 else 设备A旧 end) 数量 from table1
union all
select 厂房,'设置B' 类型 ,设备B 数量 from table1
CrazyFor 2003-08-19
  • 打赏
  • 举报
回复
select 厂房,'设置A' 类型 ,(case when 设备A替代品 <>0 then 设备A替代品 else 设备A旧 end) 数量 from table1
union all
select 厂房,'设置B' 类型 ,设备B 数量 from table1
CrazyFor 2003-08-19
  • 打赏
  • 举报
回复
select 厂房,'设置A' 类型 ,(case when 设备A替代品 <>0 then 设备A替代品 else 设备A旧 end) 数量 from table1
union all
select 厂房,'设置B' 类型 ,设备B 数量 from table1
---涛声依旧--- 2003-08-19
  • 打赏
  • 举报
回复
union all聯合所有的記錄﹐即union all前面的記錄跟union all后面的記錄一模一樣時會顯示兩條記錄。
jdbreeze 2003-08-19
  • 打赏
  • 举报
回复
谢谢! 请问union all是什么意思?起什么作用的?

34,587

社区成员

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

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