ermaosk
ermaosk
采纳率0%
2015-12-23 06:32 浏览 1.5k

sql语句包装问题,sql别名外层包装处理

现需要实现以下功能:

1、根据用户输入的sql,如: select ename, dept, sal as "工资(人民币)" from emp,对sql进行解析,通过列表展现,如下:

图片说明

2、根据上边的列表,用户选择了dept,和工资(人民币)两列,并设置求平均,需要形成图形,如下:

图片说明

思路:
使用java实现,
第一步,可以通过jdbc提供的接口(ResultSetMetaData)获取列名,查出数据没有问题。
第二部,根据用户的选择需要对用户输入的sql进行包装,包装后的sql应该为:
select dept, avg("工资(人民币)") from (select ename, dept, sal as "工资(人民币)" from emp) group by dept ;
问题来了,由于第一步通过jdbc接口获取的sql的原信息的列名为"工资(人民币)",未带有双引号,所以在包装sql的时候不能确定外层引用的列名需不需要带双引号,由于oracle的别名带有双引号或者不带都可以,而通过jdbc ResultSetMetaData.getColumnLabel接口获取的列名都不带双引号,所以不知道怎么处理了,求处理方案!!!

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享
  • 邀请回答

3条回答 默认 最新

  • sinat_31535993 sinat_31535993 2015-12-23 06:50

    在数据库中显示字段成中文,有什么用?

    点赞 评论 复制链接分享
  • beyon2008 beyon2008 2015-12-29 03:37

    sql里列名不用中文,在java程序里转换成中文

    点赞 评论 复制链接分享
  • wkdamao wkdamao 2016-01-06 03:23

    oracle 如果别名有特殊字符,比如括号,必须要带双引号才可以

    点赞 评论 复制链接分享

相关推荐