在列转行的sql 中,运行出现ora-01722 错误,例如:
select id,
sum(decode(col_name,'Name',col_val,null)) as name,
sum(decode(col_name,'Age',col_val,null)) as age,
from student
group by id;
发现问题出在 sum(decode(col_name,'Name',col_val,null))这句。
原因:当值中出现字母等字符无法运算时就会报 以上错误。
解决方法:max(decode(col_name,'Name',col_val,null)) 如此的结果也可以满足我的需要。