OA系统听过木有?OA流程知道吧??OA系统都会有流程,而流程就需要有表单(也就是流程中需要提交的数据).这些表单会因流程的不同而不同.怎么个不同法呢,举个例吧:假如我需要通过OA系统来申请一个请假流程,那么在这个流程中,我可能要填到一个表单(也叫选项):请假原因.同样的,假如我需要申请一个加班流程的话,那么在这个流程当中,我理所当然的要填一个表单:加班原因.
图一:请假表(test_qingjia)
图二:加班表(test_jiaban)
好了,很普通的表.那如果我们的表单某一天需要变更呢?比如新增一个字段,又或删掉一个字段,是用Alter语法来修改表吗??新增还好说,万一要删除呢?数据不就完蛋啦???用标识?你怎么告诉系统哪个字段是要显示出来的,哪里数据是暂时停用的??用另一张表把这些字段名称都存着?然后select的时候不select * 而select [...]??好想法,不过这也太麻烦了.那咋办啊?看标题...
图三:OA系统中的请假表单字段存放形式(表名:table_test)
select id, [ 姓名 ] , [ 開始時間 ] , [ 結束時間 ] , [ 請假原因 ] from ( select id,names,colvalue from table_test ) as table1 pivot ( max (colvalue) for names in ( [ 姓名 ] , [ 開始時間 ] , [ 結束時間 ] , [ 請假原因 ] )) as col1
执行结果如下:
图四: 输出结果
注:为了好说明,我直接把字段名称建成了中文的,另外,由于我的系统都是繁体版的,输入简体有乱码,无奈之下,截图的时候看到的都是繁体,有看不懂的小朋友可以Q我一下,我帮忙翻译一下,由于本人目前能力实在有限,所以只能向广大的女性朋友翻译,还提供上门服务,让您感到真正的贴心、放心和省心。
另外,那个字段的type估计还有别的用法的吧,只是我也是昨天刚接触,还没深入了解,所以也不献丑了,各位不防自己试试?知道用法的也可以在这里留言。
最后,甩一句:只有想不到,没有做不到。