gpt4 book ai didi

java - Oracle和java动态 'Order by'子句

转载 作者:行者123 更新时间:2023-12-02 05:52:43 25 4
gpt4 key购买 nike

我正在尝试在java中构建动态sql查询(如下所示)

    sqlStr = "Select * " +
"from " + tableName

if(tableName!=null){
if(tableName.equals("Table1"){
sqlStr = sqlStr.concat("order by city desc");
}else if(tableName.equals("Table2"){
sqlStr = sqlStr.concat("order by country desc");
}else if(tableName.equals("Table3"){
sqlStr = sqlStr.concat("order by price desc");
}
}

现在我想做的是添加一个最终的“else”语句,该语句将根据表是否包含名为“custID”的列对查询进行排序。会有多个包含该列的表,因此我想按 custID 对具有该列的表进行排序。 (而不是为每个具有该列名的表添加数百个额外的 if 语句。)这可能吗?我见过有人使用“解码”功能,但我不知道如何在这里使用它。

最佳答案

使用DatabaseMetaData来获取表信息。

您可以使用getTablexxx()getColumnxx()方法获取表格信息。

Connection conn = DriverManager.getConnection(.....);
DatabaseMetaData dbmd = conn.getMetaData();
dbmd.getxxxx();

注意:您在代码中忘记了 ORDER BY 子句之前的空格。

关于java - Oracle和java动态 'Order by'子句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3726895/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com