【问题标题】:jbdc ignores aliases in sql statementjbdc 忽略 sql 语句中的别名
【发布时间】:2012-01-16 17:34:14
【问题描述】:

例如,在我的 java 应用程序中,我运行 sql 查询:

select rowid as col1, id as col2 from dummy_table

然后,当我使用 ResultSetMetaData.getColumnNames 时,我希望获得列别名(col1 和 col2),但方法返回物理列名。

所以,我的问题是,如何使用 ResultSetMetaData 获取列别名

我使用 Java 1.6、Jdbc、Sybase

非常感谢

【问题讨论】:

    标签: java sql jdbc sybase


    【解决方案1】:

    我注意到 MySQL 中有类似的东西 - 在那里,一个快速的解决方法是将您的主查询变成子查询,如下所示:

    select v.* from (
    select rowid as col1, id as col2 from dummy_table
    ) as v
    

    【讨论】:

      【解决方案2】:

      也许您的驱动程序不理解别名列。尝试调用ResultSetMetaData.getColumnLabel() 看看会得到什么

      【讨论】:

        【解决方案3】:

        你可以使用临时表,

           select rowid as col1, id as col2 INTO #tmp from dummy_table
        
        
            select * from #tmp
        

        我认为这会奏效。

        第二个解决方案 还要检查 ResultSetMetaData 的String getColumnLabel(int column) 函数

        【讨论】:

        • 我认为这不是一个好的解决方案。您将添加额外的 io 和潜在的不良性能。看看马克班尼斯特的回答。
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-07-19
        • 1970-01-01
        • 2015-02-24
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多