date1 tran_1 date2 tran_2 date3 tran_3 ..... date80 tran_80
may01 24 jun02 32 aug18 56 ..... sep10 44
Sep01 24 Nov08 32 Jan18 56 ..... Jun18 44
现在输出应该是和如何编写动态查询..我已经通过传递参数编写了一个程序,对于上面的80个变量我必须调用程序大约40次,PLZ帮帮我
date tran type
may01 24 tran_1
Sep01 24 tran_1
jun02 32 tran_2
Nov08 32 tran_2
aug18 56 tran_3
Jan18 56 tran_3
........................
........................
sep10 44 tran_80
Jun18 44 tran_80
答案 0 :(得分:1)
一种方法是使用union all
:
select date, tran_1 as tran, 'tran_1' as type from t union all
select date, tran_2 as tran, 'tran_2' as type from t union all
select date, tran_3 as tran, 'tran_3' as type from t union all
. . .
我的建议是在电子表格中生成代码。只需生成数字1到80并使用电子表格功能。或者,如果您不想在。
中键入所有列名,则可以生成动态SQL如果性能是一个问题和,你有很多很多数据,还有其他方法。但是,这种类型的查询通常只运行一次,更有效的查询更难构建。