sql >> データベース >  >> RDS >> PostgreSQL

SQLの結果セットの各列の前にテーブル名を付けますか? (特にPostgres)

    この質問は少し古いことは知っていますが、誰かが答えにつまずいて助けてくれるかもしれません。

    探していることを行う適切な方法は、ビューを作成して使用することです。はい、これらすべての新しい列名をエイリアスとして入力するのは少し面倒ですが、列がたくさんある場合は、PostgreSQLメタデータを利用してビューのテキストを書き出すために使用できるトリックがあります。

    select 'CREATE OR REPLACE VIEW people AS SELECT ' || 
    (select string_agg(column_name || ' AS person_' || column_name, ', ')
    from information_schema.columns
    where table_name = 'person'
    group by table_name) || 
    ' FROM person;';
    

    これを実行すると、次のようになります。

    ?column?                                                 
    ------------------------------------------------------------------------------------------------------------- 
    CREATE OR REPLACE VIEW people AS SELECT last_name AS person_last_name, first_name AS person_first_name FROM person; 
    
    1 record(s) selected [Fetch MetaData: 0/ms] [Fetch Data: 0/ms]
    [Executed: 4/21/12 2:05:21 PM EDT ] [Execution: 9/ms]
    

    その後、結果と出来上がりをコピーして実行できます:

    select * from people;
    
     person_last_name     person_first_name    
     -------------------  -------------------- 
     Melvoin              Wendy                
     Coleman              Lisa                 
    
     2 record(s) selected [Fetch MetaData: 1/ms] [Fetch Data: 0/ms] 
    


    1. NULL値との比較

    2. Python:MySQL接続は開いていますが、カーソルを作成できません

    3. mysql:whoami?

    4. mysqlデータベースからデータを取得する方法