2

このサイトで、列名が異なる2つのテーブル(1つのテーブルの結果を別のテーブルの結果の下に配置)をスタックするコードを確認しました。UNION ALLは、名前が同じ場合に機能することを知っています。また、一方のテーブルに不足している列名の割り当てを持つUNION ALLは、一方のテーブルにもう一方のテーブルよりも多くの情報がある場合に機能することを知っています。名前が違いますか?たとえば、あるテーブルで列名がCHPで、別のテーブルで「CHILD HEALTH PLUS」であり、これら2つの列を積み重ねる必要がある場合はどうでしょうか。

4

2 に答える 2

6

UNION は、列のデータ型が同じである限り使用できます。列名が異なっていても問題ありません。

SELECT column1
FROM Table1
UNION
SELECT column1
FROM Table2

レコードがどのテーブルからのものか知りたい場合は、行を区別する別のフィールドを追加できます。

SELECT column1, 'Table1' as TableName
FROM Table1
UNION
SELECT column1, 'Table2' as TableName
FROM Table2
于 2012-05-04T16:21:25.260 に答える
0

どのSQL言語? mysql/sql サーバー?

mysql では、列名が同じである必要はありませんが、常に「AS」を使用して列名を一致させることができます。

select column1 AS col1, column2 AS col2...

編集: 記事のタイトルに「2008」が含まれているのを見つけました。これは SQL Server 2008 ですか? いずれにせよ、SQLサーバーはreを気にしないようです。列名。

于 2012-05-04T16:17:47.537 に答える