如何獲得結果集中每列的標籤,以便在其表中添加名稱?將表名添加到SQL中結果集中的每個列? (特別是Postgres)
我希望這發生在單個表上的查詢以及連接。
例子:
SELECT first_name, last_name FROM person;
我想要的結果是:
| person.first_name | person.last_name |
|-------------------|------------------|
| Wendy | Melvoin |
| Lisa | Coleman |
我可以使用 「AS」 來定義每個列的別名,但是這將是乏味的。我希望這會自動發生。
SELECT first_name AS person.first_name, last_name AS person.last_name FROM person;
的原因,我的問題是,我使用的數據庫驅動程序不提供的元數據,通知我從那裏結果集得到了它的數據的數據庫列。我正在嘗試編寫通用代碼來處理結果集。
我想知道如何在SQL中完成此工作,或者至少在Postgres中專門進行。
SQLite有這樣的功能,雖然我看到它現在莫名其妙地被棄用。 SQLite有兩個附註設置:full_column_names & short_column_names。
我不認爲這是可能。 – 2011-03-03 11:26:04
看到SQLAlchemy如何「手動」執行所有這些操作,我也懷疑這可以完成。 – 2011-03-03 12:59:11
這是不可能的一個原因是沒有什麼可以將結果列魔術般地綁定到表格上。列中的輸出可能是由0個或更多列(以及0個或更多個表)組成的表達式。輸出的默認列名通常是從列名借用的,但它也可以來自函數名(例如默認情況下'SELECT min(x)'返回名爲'min'的列),並且可能是' ?柱?'當沒有違約時。我認爲,使用'AS'的(不幸的)乏味的建議是唯一的答案,因爲它不會對不同行爲進行黑客入侵和重新編譯Postgres。 – Flimzy 2011-06-15 09:13:05