私は特定の操作を実行するために必要なテーブルGeoTableを持っています。複数のフィールドを1つのフィールドに連結してSQLでリンクする
テーブルには2つの主要なフィールドがあります。これはマッピングプロジェクトであるため、Geoフィールド(緯度と経度の文字列内の位置のジオメトリを表すvarchar(max))があります)、およびIDフィールド(これはbigintです)が含まれています。
しかし、複数のIDは同じGeoを持つことができます(たとえば、1つの場所が何度も販売されている可能性があります)。それらのグループをまとめてGeoが持つIDを教えてください。ですから、例えば:私はここにいくつかのコードを持っている
Geo IDs
(My big Geometry string here) 1,2,3,4,5,
(My other big Geometry string here) 6,7,8,
Geo IDs
(My big Geometry string here) 1
(My big Geometry string here) 2
(My big Geometry string here) 3
(My big Geometry string here) 4
(My big Geometry string here) 5
(My other big Geometry string here) 6
(My other big Geometry string here) 7
(My other big Geometry string here) 8
...私は必要なもの基本的にですが、それは本当に遅い実行される...となり(私はなるだろう)時点で約20000レコードをフェッチするが、オンラインの人々は、それはかなり瞬時に期待するウェブサイトを通じて:
SELECT DISTINCT Geo, (
SELECT ','+LEFT(CAST(G2.Id AS NVARCHAR),11) AS [text()]
From dbo.GeoTable G2
Where G2.Geo = GeoTable.Geo
ORDER BY Id
For XML PATH ('')
) [IDs]
FROM GeoTable
申し訳ありませんが、また、私はMS SQL Serverを使用していないので、何のGROUP_CONCATてる言及する必要があります。
私は、これはあなたが使用している実際のデータベースであると仮定すると、SQL Serverのコードを追加しました。 –