在我的Java應用程序運行我的SQL查詢,例如:JBDC忽略sql語句別名
select rowid as col1, id as col2 from dummy_table
,然後,當我使用ResultSetMetaData.getColumnNames我希望得到列別名(COL1和col2上),但方法返回物理列名稱。
所以,我的問題是,如何的使用ResultSetMetadata
得到列別名我使用Java 1.6,JDBC的Sybase
非常感謝
在我的Java應用程序運行我的SQL查詢,例如:JBDC忽略sql語句別名
select rowid as col1, id as col2 from dummy_table
,然後,當我使用ResultSetMetaData.getColumnNames我希望得到列別名(COL1和col2上),但方法返回物理列名稱。
所以,我的問題是,如何的使用ResultSetMetadata
得到列別名我使用Java 1.6,JDBC的Sybase
非常感謝
您可以使用臨時表,
select rowid as col1, id as col2 INTO #tmp from dummy_table
select * from #tmp
我認爲這將起作用。
對於第二種方案 還要檢查ResultSetMetaData的
的String getColumnLabel(int column)
功能
也許你的驅動程序不明白別名列。嘗試調用ResultSetMetaData.getColumnLabel()
看看它獲得MySQL的類似
我注意到的東西 - 在那裏,一個快速的解決辦法是把你的主查詢到一個子查詢,像這樣:
select v.* from (
select rowid as col1, id as col2 from dummy_table
) as v
我認爲它不是一個好的解決方案。 您將添加額外的io並可能導致性能不佳。看看馬克班尼斯特的回答。 – kolchanov