ホームページ > データベース > mysql チュートリアル > MS Access クエリで複数の行を 1 つの値に連結するにはどうすればよいですか?

MS Access クエリで複数の行を 1 つの値に連結するにはどうすればよいですか?

Linda Hamilton
リリース: 2025-01-07 21:17:44
オリジナル
497 人が閲覧しました

How Can I Concatenate Multiple Rows into a Single Value in an MS Access Query?

MS Access クエリで複数の行を 1 つの値に結合する

このガイドでは、共有フィールドに基づいて、MS Access クエリ内で複数の行を単一の値に連結する 2 つの方法を説明します。 これらのメソッドは、カスタム関数または組み込み集計関数のいずれかを使用します。

方法 1: カスタム関数 (GetList) を使用する

このアプローチでは、VBA 関数を作成する必要があります。 次に、クエリはこの関数を呼び出して連結を実行します。

クエリ構造は次のとおりです:

<code class="language-sql">SELECT ColumnA, GetList("SELECT ColumnB FROM Table1 WHERE ColumnA = " & [ColumnA], "", ", ") AS ColumnB
FROM Table1
GROUP BY ColumnA;</code>
ログイン後にコピー

GetList 関数 (VBA モジュールで定義) は、同じ ColumnA 値を共有する行を反復処理し、区切り文字としてカンマを使用して、対応する ColumnB 値を連結します。 この区切り文字は簡単に変更できます。

方法 2: 組み込みのリスト集計関数を使用する

このメソッドは、組み込みの List 関数を利用して、よりシンプルでコード不要のソリューションを実現します。

クエリは次のとおりです:

<code class="language-sql">SELECT ColumnA, List(ColumnB) AS ColumnB
FROM Table1
GROUP BY ColumnA;</code>
ログイン後にコピー

List 関数は、一意の ColumnB 値ごとに ColumnA 値を自動的に連結します。 List で使用される区切り文字は、Access の設定によって異なる場合があることに注意してください。

データと結果の例

次のサンプル データについて考えてみましょう:

ColumnA ColumnB
1 abc
1 pqr
1 xyz
2 efg
2 hij
3 asd

どちらの方法でも次の結果が生成されます:

ColumnA ColumnB
1 abc, pqr, xyz
2 efg, hij
3 asd

区切り文字のカスタマイズ

GetList 関数のパラメータ内の区切り文字を調整するか (方法 1)、場合によっては地域設定を通じて (方法 2)、別の区切り文字 (セミコロン、スペースなど) を使用します。

以上がMS Access クエリで複数の行を 1 つの値に連結するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート