通常查询语句中定义列名是
value as fieldname 这样的格式
现在我希望as后面的内容是动态计算得到的
例如 value as func(value)
有没有解决办法?
请仔细阅读问题描述后回答!
查询结果每行的列都必须是相同的,只能通过case when语句把不同类型的数据放到不同列中,如果说你的func(value)返回结果很多,建议把逻辑放在编程语言中,而不是数据库查询中
计算结果值,得放前边吧;你这个有点行转列的意思,用case when ,这个就跟if else 条件判断一样,你试试!
https://www.cnblogs.com/ajunsoft/archive/2009/03/30/1425238.html 参考这个看看
这要求是无法实现的,不过你可以在获取数据后,自己对value的值再处理一下,根据value的值,放到不同的属性中去就可以。
请问你的sql是定义在哪里的,比如java代码中?存储过程?触发器?
需要把问题描述得再清楚点,或者把你的这部分代码贴出来,看看
sql语句中一般不可把字段名和表名作为变量传入,解决办法可以试试在执行前,以字符串替换占位符的形式。
as只是起个别名而已,你可以 func(value) as othername。
单纯的SQL肯定做不到 不允许列名变量
但是你可以通过exec的方式来实现, 吧你的SQL当做字符串拼出来列名可以通过函数返回, 然后再exec这个字符串得到结果