web-dev-qa-db-ja.com

DQL / SQLからExcelへ-スプレッドシートで複数のSELECTステートメントの結果を取得します

個別のSELECTステートメントをいくつか含むT-SQLクエリを作成しました。各SELECTステートメントは異なる数の列を返し、異なるプロパティ/機能を表すため、それらすべてを1つのSELECT/1つの結果に結合したくありません。

クエリを視覚化するために、簡単な例を示します。

DECLARE @myNumber bigint;     
SET @myNumber = 5426;

SELECT 'This' as col1, 'is' as col2, 'my' as col3, 'number:' as col4, @myNumber as col5

SELECT 'and' as column1, 'the half' as column2, @myNumber/2 as column3

SELECT * FROM
       (SELECT 'some' as column1, 'union' as column2
             UNION ALL
       SELECT 'second' as column1, 'case' as column2
       ) as someData

クエリ実行後のSQLServer ManagementStudioでの外観は次のとおりです。

Result of example query execution

ここで、Excelでまったく同じクエリ結果を取得したいと思います。 [データ]-> [他のソースから]-> [SQLServerから]に移動します。 [データのインポート]ウィンドウで、[プロパティ]をクリックし、上記のクエリを挿入します。

setting - SQL Server connection

残念ながら、Excelには最初のSELECTクエリ結果のみが表示されます。

only the first query result is obtained in Excel

Excelですべてのクエリ結果を取得することは可能ですか?

2
matandked

Excelは、1つの接続で複数のSQLステートメントをサポートしていません。

回避策として、必要な機能をエミュレートするマクロを使用できます。

コメントで提起された他の質問:

  • マイクロソフトは、Excelの将来のバージョンでこの機能を追加する予定ですか。私はMSの従業員ではなく、彼らの計画も知りません。
    しかし、多くのユーザーが必要とする機能ではないようですが、開発がそれに焦点を当てることは期待していません。
  • 他の同様のツール(Open Officeなど)は複数のSQLステートメントをサポートしていますか?私はそれらのツールを知りません。
1
Máté Juhász