当前位置:编程学习 > JAVA >>

java截取sql字符串中的字段别名

例如截取:select a as A,b as B,c as C from d  。 sql语句作为参数传入,所以字段个数不确定。求高手解答,用正则应该可以,但是本人不会 --------------------编程问答-------------------- str[] s = sql.split(" "); 按空格分,取得数组
然后判断as 的位置 
if("as".equals(s[i])){ //自己去忽略AS大小写吧
  // 那么s[i+1] 就是别名。 别名在 AS的后面
}

思路大概这样,不知可行否。 没验证

--------------------编程问答-------------------- 不行,按空格截取的话,别名会和后面的逗号和列名连在一起作为一个元素放入数组 --------------------编程问答-------------------- 查询后返回的ResultSet中不是有别名吗?
sql.split("(.+ as || from .+)");
试试? --------------------编程问答--------------------

public static void main(String args[]) throws Exception{
String sql = "select a as A,b as B,c as C from d,e";
String[] strs = Pattern.compile("([^,]+\\s+as\\s+|\\s+from\\s+.+)").split(sql);
for(String s : strs){
if(!s.equals(""))
System.out.println(s.replaceAll(",", ""));
}
}
--------------------编程问答--------------------
引用 4 楼  的回复:
Java code

    public static void main(String args[]) throws Exception{
        String sql = "select a as A,b as B,c as C from d,e";
        String[] strs = Pattern.compile("([^,]+\\s+as\\s+|\\s+fro……

Sql语句再加一个查询字段就不行了
补充:Java ,  Java相关
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,