我正在为 jdbc 使用 postgres 9.1 和 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 子句中指定的参数数量及其列名。
我正在为 jdbc 使用 postgres 9.1 和 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 子句中指定的参数数量及其列名。
您可以通过将 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订购以获得您想要的东西。希望有帮助。
如果您将查询作为字符串获取,您可以简单地解析它。
即找出 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
For more complex searching in string you may need to use RegExp