言語にはそれを解決する組み込みの方法はありません (率直に言って、* は一般的に悪い習慣です。テーブル スキーマが変更されると、潜在的な欠陥が発生する可能性があるためです。table1.*、table2.acolumn、tabl2.bcolumn を実行できます。あるテーブルのすべてと別のテーブルから選択的に必要な場合)、しかし PostgreSQL が INFORMATION_SCHEMA をサポートしている場合は、次のようにすることができます。
DECLARE @sql AS varchar
SELECT @sql = COALESCE(@sql + ', ', '')
+ '[' + TABLE_NAME + '].[' + COLUMN_NAME + ']'
+ CHAR(13) + CHAR(10)
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME IN ('table1', 'table2')
ORDER BY TABLE_NAME, ORDINAL_POSITION
PRINT @sql
結果を貼り付けて、多くの入力を節約します。もちろん、同じ名前の列には手動で別名を付ける必要があります。必要に応じて一意の名前をコード生成することもできます (ただし、私はしません)。
SELECT @sql = COALESCE(@sql + ', ', '')
+ '[' + TABLE_NAME + '].[' + COLUMN_NAME + '] '
+ 'AS [' + TABLE_NAME + '_' + COLUMN_NAME + ']'
+ CHAR(13) + CHAR(10)
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME IN ('table1', 'table2')
ORDER BY TABLE_NAME, ORDINAL_POSITION