我正在使用postgres 9.1和jdbc的java代码。
我可以在order by
sql query string
条款
我只想获取查询的meta data
信息,以查找查询是否具有order by
子句。如果有,那么order by clause
中已指定了多少个字段。
Ex:
order by age
order by age, name
order by age asc, name desc
在这些示例中,我只想检索order by子句及其列名中指定的参数数量。
答案 0 :(得分:0)
您可以通过将SQL查询分解为部分然后重新分配来实现。 像
String sql="SELECT NAME,COMPANY,FNAME,AGE FROM COMP_DATA JOIN PERSONAL_DATA WHERE (1=1) AND FNAME='Vaibs' ORDER BY AGE";
在JAVA中写作时,请执行以下操作。 将整个查询分解为字符串部分并重新组合它。
String strSQL = "SELECT " + "NAME"+",COMPANY"+",FNAME"+",AGE" + "FROM "
+ getTableName1(); //getTableName1() return tablename
strSQL+="JOIN "+ getTable2()+"";//getTable2() return tablename as well
String strWhere = " WHERE (1=1) " + " and FNAME='" + fname+ "';
String orderBySQL = " Order by " + i_will_return_string_to_order_by();
//return AGE in our case
String FinalString= strSQL +strWhere +orderBySQL ;
SOP订购,以获得您想要的。 希望有所帮助。
答案 1 :(得分:0)
如果你的查询是字符串,你可以简单地解析它。
即。要弄清楚ORDER BY是否存在
"SELECT * FROM MyTable ORDER BY SomeColumn".toLowerCase().indexOf("order by") // if it's return -1 query does not contains order by section otherwise it returns start index for first occurence "ORDER BY" in given string
对于字符串中更复杂的搜索,您可能需要使用RegExp