2011-12-09 58 views
1

在我的Java應用程序運行我的SQL查詢,例如:JBDC忽略sql語句別名

select rowid as col1, id as col2 from dummy_table 

,然後,當我使用ResultSetMetaData.getColumnNames我希望得到列別名(COL1和col2上),但方法返回物理列名稱。

所以,我的問題是,如何的使用ResultSetMetadata

得到列別名我使用Java 1.6,JDBC的Sybase

非常感謝

回答

1

您可以使用臨時表,

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


    select * from #tmp 

我認爲這將起作用。

對於第二種方案 還要檢查ResultSetMetaData的

String getColumnLabel(int column)功能
+2

我認爲它不是一個好的解決方案。 您將添加額外的io並可能導致性能不佳。看看馬克班尼斯特的回答。 – kolchanov

3

也許你的驅動程序不明白別名列。嘗試調用ResultSetMetaData.getColumnLabel()看看它獲得MySQL的類似

3

我注意到的東西 - 在那裏,一個快速的解決辦法是把你的主查詢到一個子查詢,像這樣:

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