日期:2014-05-17  浏览次数:20681 次

挑战能力的一个问题分析,敢不敢进来尝试一下?
请教各位大牛,有什么好的方法可以用java解析出下面sql中的表名,以及所用到的表的字段,格式如下:
       表                            字段
MID_PAYREF_FEE        POLICYNO 
....                 
MID_CMAINORIGIN       WORKNUMBER

=======================================
还有嵌套的子查询别名,怎么解析呀?




SELECT     
   M.POLICYNO                                 AS POLICYNO
  ,M.BUSINESSNO                               AS BUSINESSNO
  ,M.BUSINESSTYPE                             AS BUSINESSTYPE
  ,M.PAYTIMES                                 AS PAYTIMES
  ,(SELECT K.CLASSCODE FROM CD_CLASS_RISK K WHERE K.RISKCODE = M.RISKCODE)  AS CLASSCODE
  ,(SELECT K.CLASSCNAME FROM CD_CLASS_RISK K WHERE K.RISKCODE = M.RISKCODE) AS CLASSNAME
  ,M.RISKCODE                                 AS RISKCODE
  ,(SELECT K.RISKCNAME FROM CD_RISK K WHERE K.RISKCODE = M.RISKCODE) AS RISKNAME
  ,M.BUSINESSNATURE                           AS BUSINESSNATURE
  ,(SELECT CB.CODECNAME FROM CD_BUSINESSNATURE CB WHERE CB.CODE = M.BUSINESSNATURE)  AS BUSINESSNATURENAME
  ,M.CUSTOMERTYPE                             AS CUSTOMERTYPE
  ,(SELECT CA.CODECNAME FROM CD_CUSTOMERTYPE_ACC CA WHERE CA.CODE = M.CUSTOMERTYPE)  AS  CUSTOMERTYPENAME
  ,M.CHANNELCODE                              AS AGENTID             
  ,(SELECT G.CHANNELCNAME FROM CD_AGENT G WHERE G.CHANNELCODE = M.CHANNELCODE)  AS AGENTNAME
  --,M.APPLIID                                AS APPLIID
  ,M.APPLINAME        &nbs