SQL语句如何实现动态列
答案:3 悬赏:80 手机版
解决时间 2021-03-27 12:28
- 提问者网友:疯孩纸
- 2021-03-27 02:56
SQL语句如何实现动态列
最佳答案
- 五星知识达人网友:北方的南先生
- 2021-03-27 03:09
写代码,先查询表里的值有几个,再拼出相应的sql,用客户端代码还是存储过程随便追问能不能那个用SQL写个案例 谢谢追答直接写不出来呀,sql是静态的,只能编码,
执行 select distinct 费用类型 from 表
sql = "select "
对上面的结果 for
if( 费用类型=="人工费")
sql += "max(case when 费用类型='人工费' then 费用 end) 人工费, "
else if ( 费用类型=="材料费")
sql+="max(case when 费用类型='材料费' then 费用 end) 材料费,"
else if(费用类型=="机械费")
sql+="max(case when 费用类型='机械费' then 费用 end) 机械费,"
sql = left( sql, len(sql)-1)
sql+= " from 表 group by 费用类型";
再执行这个sql
执行 select distinct 费用类型 from 表
sql = "select "
对上面的结果 for
if( 费用类型=="人工费")
sql += "max(case when 费用类型='人工费' then 费用 end) 人工费, "
else if ( 费用类型=="材料费")
sql+="max(case when 费用类型='材料费' then 费用 end) 材料费,"
else if(费用类型=="机械费")
sql+="max(case when 费用类型='机械费' then 费用 end) 机械费,"
sql = left( sql, len(sql)-1)
sql+= " from 表 group by 费用类型";
再执行这个sql
全部回答
- 1楼网友:动情书生
- 2021-03-27 05:39
至少有一个标识吧,不然就没有办法判断到底是哪一个!追问每个值都会有个PK 这个pk是唯一的
- 2楼网友:何以畏孤独
- 2021-03-27 04:30
你的这些值应该有个范围控制吧,比如:人工费(100-200) 材料费(1000-2000)。。。
你可以通过这些值的大小来判断是什么费用,整几个列,人工的放在这,材料的放在那,。。。
总之要有个判断的依据,照你这样,这也不确定,那也不确定,何苦来哉?
你可以通过这些值的大小来判断是什么费用,整几个列,人工的放在这,材料的放在那,。。。
总之要有个判断的依据,照你这样,这也不确定,那也不确定,何苦来哉?
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯